我的应用程序在常规版本的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版本,但是我想尽可能地避免它,以便我的构建时间不会上升 - 这将是最后的手段。我也无法将minSdkVersion设置为21用于调试版本,因为我的目标是API 19设备。我真的想继续使用上面的库 - 这些都没有好的选择。
在我的gradle配置下,我可以做些什么来将multidex限制为仅测试版本吗?或者其他任何可能的解决方案?
答案 0 :(得分:1)
在构建脚本中尝试此操作,让proguard缩小代码:
android {
buildTypes {
debugTest.initWith(debug)
debugTest {
minifyEnabled true
}
}
}
...
android {
testBuildType 'debugTest'
}
摘自stackoverflow.com/questions/21463089/proguard-gradle-debug-build-but-not-the-tests
答案 1 :(得分:0)
您可以创建新的构建风格,仅用于在高api级别上进行测试/开发。它看起来像这样:
android {
productFlavors {
testing {
minSdkVersion 21
}
}
}
您可以在自定义“测试”中添加任何您也会置于defaultConfig中的配置。
定义之后,您可以使用左下角的Build Variants工具窗口在Android Studio中切换到这种风格。您可以使用assembleTestingDebug
的gradle构建它。您可以根据需要定义多种口味,方便您使用。
http://tools.android.com/tech-docs/new-build-system/user-guide