- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
页面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?
最佳答案
更新:这是修复。这是一种常见的模式,当您看到这样的错误消息时 had used a different L<package>; during pre-verification
,您需要在运行测试时排除包。
build.gradle
android {
// ...
defaultConfig {
// ...
multiDexEnabled true
testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
}
}
dependencies {
// ...
// Need to exclude this when running test
androidTestCompile('com.android.support:multidex-instrumentation:1.0.1') {
exclude group: 'com.android.support', module: 'multidex'
}
}
Application.java
public class Application extends android.app.Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
关于android - MultiDexTestRunner 的哪个包? android.support.multidex 或 com.android.test.runner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28056075/
我正在使用: Android Studio 1.1.0 Gradle 2.2.1 适用于 Gradle 的 Android 插件:1.1.0 我们最近迁移到了 Android Studio,我们正努力
页面http://developer.android.com/tools/building/multidex.html#testing建议 dependencies { compile
有人知道为什么我不能使用 MultiDexTestRunner 吗? 我的 build.gradle 包含: android { ... defaultConfig {
我是一名优秀的程序员,十分优秀!