簡體   English   中英

達到測試版本的 65k 方法 dex 限制

[英]Hitting 65k method dex limit for test builds

我的應用程序低於常規構建的 dex 限制,但為測試構建提供 dex 限制構建錯誤:

Conversion to Dalvik format failed:
Unable to execute dex: method ID not in [0, 0xffff]: 65536

似乎是因為添加了這些用於測試的庫:

androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'org.powermock:powermock-api-mockito:1.6.5'
androidTestCompile 'org.powermock:powermock-module-junit4:1.6.5'

我知道我可以進行 multidex 構建,但我想盡可能避免它,這樣我的構建時間就不會增加 - 這將是最后的手段。 由於我的目標是 API 19 設備,因此我也無法將 minSdkVersion 設置為 21 以進行調試版本。 我真的很想繼續使用上述庫 - 這些沒有好的替代品。

在我的 gradle 配置下,我可以做些什么來將 multidex 限制為僅用於測試版本? 或者任何其他可能的解決方案?

在你的構建腳本中試試這個,讓 proguard 縮小你的代碼:

android {
    buildTypes {
        debugTest.initWith(debug)
        debugTest {
            minifyEnabled true
        }
    }
}

...

android {
    testBuildType 'debugTest'
}

stackoverflow.com/questions/21463089/proguard-gradle-debug-build-but-not-the-tests采用

您可以創建一個新的構建風格,僅用於在高 api 級別上進行測試/開發。 它看起來像這樣:

android {
    productFlavors {
        testing {
            minSdkVersion 21
        }
    }
}

您可以將您也將放入 defaultConfig 的任何配置放入您的自定義“測試”風格中。

定義后,您可以使用左下角的 Build Variants 工具窗口在 Android Studio 中切換到這種風格。 您可以使用assembleTestingDebug使用 gradle 構建它。 您可以根據自己需要的不同配置定義盡可能多的風格。

http://tools.android.com/tech-docs/new-build-system/user-guide

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM