[英]Multi-module MultiDex project won't run tests after update to android gradle plugin 2.3
我有多个模块的项目,所有模块都配置为使用multiDexEnabled true
构建。 所有这些模块都有仪表测试包,配置为根据这个SO答案运行启用MultiDex的JUnit4测试: https : MultiDex
除了其中一个模块。 其中一个模块配置为使用testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
(因此没有JUnit4测试),因为它依赖于一个不会加载 JUnit4测试运行器的DLL。 (如果有人知道那个解决方案,那太好了!但这不是我在这里报道的问题......)
这个配置一直很好,直到我试图更新到android gradle插件2.3.0 。 现在,当我使用JUnit3 MultiDexTestRunner
运行模块测试时,我看到:
Started running tests
Test running failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'
Empty test suite.
并在控制台中(截断到有用位):
java.lang.RuntimeException: Unable to instantiate instrumentation ComponentInfo{com.redacted.test/com.android.test.runner.MultiDexTestRunner}: java.lang.ClassNotFoundException: Didn't find class "com.android.test.runner.MultiDexTestRunner" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.redacted.test-1/base.apk", zip file "/data/app/com.redacted.test-1/base.apk"],nativeLibraryDirectories=[/data/app/com.redacted.test-1/lib/arm, /data/app/com.redacted.test-1/lib/arm, /data/app/com.redacted.test-1/base.apk!/lib/armeabi-v7a, /data/app/com.redacted.test-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
...
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.android.test.runner.MultiDexTestRunner" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.intuit.paymentshub.test-1/base.apk", zip file "/data/app/com.intuit.paymentshub.test-1/base.apk"],nativeLibraryDirectories=[/data/app/com.intuit.paymentshub.test-1/lib/arm, /data/app/com.intuit.paymentshub.test-1/lib/arm, /data/app/com.intuit.paymentshub.test-1/base.apk!/lib/armeabi-v7a, /data/app/com.intuit.paymentshub.test-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
所以我坚持使用早期的Android Gradle插件,直到我可以解决这个问题(或者DLL问题,尽管我对这个问题的希望不大,因为它从未起作用。)
更新工具后似乎这个问题就消失了。 目前用buildTools 26运行android for gradle 2.3.3并且这个问题消失了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.