该页面http://developer.android.com/tools/building/multidex.html#testing 建议
dependencies {
compile 'com.android.support:multidex:1.0.1'
androidTestCompile 'com.android.support:multidex-instrumentation:1.0.1'
}
android {
defaultConfig {
multiDexEnabled true
testInstrumentationRunner "android.support.multidex.MultiDexTestRunner"
}
}
但是在运行测试时会产生 ClassNotFoundException。
API 文档和 dexdump 显示有 com.android.test.runner.MultiDexTestRunner。
因此,如果我不相信文档并指定
dependencies {
compile 'com.android.support:multidex:1.0.1'
androidTestCompile 'com.android.support:multidex-instrumentation:1.0.1'
}
android {
defaultConfig {
multiDexEnabled true
testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
}
}
然后我得到
com/company/myapp/MyApp; had used a different Landroid/support/multidex/MultiDexApplication; during pre-verification
...
IllegalAccessExceptionIllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
我怀疑文档页面是错误的,正确的路径是 com.android.test.runner.MultiDexTestRunner ...另外我还有其他问题。
请注意,multidex 应用程序工作正常。不知何故,第二个 MultiDexApplication 包含在测试 apk 中。
问题:
MultiDexTestRunner 的正确路径是什么?为什么我在测试 apk 中获得了第二个 MultiDexApplication?