gpt4 book ai didi

android - MultiDexTestRunner 不适用于 MultiDexApplication

转载 作者:行者123 更新时间:2023-11-29 01:34:47 24 4
gpt4 key购买 nike

我正在使用:

  • Android Studio 1.1.0
  • Gradle 2.2.1
  • 适用于 Gradle 的 Android 插件:1.1.0

我们最近迁移到了 Android Studio,我们正努力让我们的仪器测试工作。但是当我运行测试时,它给了我错误

运行测试测试运行开始测试运行失败:无法找到以下的检测信息:ComponentInfo {com.xxx.xxx.test/android.test.InstrumentationTestRunner}空测试套件。

我不确定我在这里做错了什么。请参阅下面的配置:

应用类:

public class XxxApp extends MultiDexApplication
{
...
}

应用构建.gradle

apply plugin: 'com.android.application'

dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.google.android.gms:play-services-base:6.5.87'
compile 'com.google.android.gms:play-services-maps:6.5.87'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:multidex:1.0.0'
compile 'org.apache.commons:commons-lang3:3.3.2'
compile 'com.google.code.gson:gson:2.3.1'
compile 'joda-time:joda-time:2.7'
compile 'org.roboguice:roboguice:2.0'
compile project(':Common')
compile project(':zxing-lib')
androidTestCompile fileTree(dir: 'test-libs', include: '*.jar')
androidTestCompile('com.android.support:multidex-instrumentation:1.0.1') {
exclude group: 'com.android.support', module: 'multidex'
}
androidTestCompile 'com.google.dexmaker:dexmaker:1.+'
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.+'
androidTestCompile 'junit:junit:4.11'
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
androidTestCompile 'org.mockito:mockito-core:1.9.5'
}

android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
enforceUniquePackageName false
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
applicationId "com.xxx.xxx"
multiDexEnabled true
testApplicationId "com.xxx.xxx.test"
testInstrumentationRunner 'android.test.InstrumentationTestRunner'
// Does not work testInstrumentationRunner 'com.android.test.runner.MultiDexTestRunner'
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'LICENSE.txt'
}
lintOptions {
abortOnError false
checkReleaseBuilds false
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}

// Move the tests to tests/java, tests/res, etc...
androidTest.setRoot('tests')
androidTest.java.srcDir('tests/src')
androidTest.res.srcDir('tests/res')
androidTest.assets.srcDirs('tests/assets')

// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
productFlavors {
}
}

测试类

public class XxxTests extends InstrumentationTestCase
{
public void testXxx()
{
...
}
}

顶层build.gradle

dependencies 
{
classpath 'com.android.tools.build:gradle:1.1.0+'
}

最佳答案

原始问题中描述的确切情况可能与旧版本的工具有关。

我在这里添加我的经验,因为这是使用 ... Unable to find ... ComponentInfo ... 错误消息搜索时的第一个 Google 命中之一。

使用最新版本的工具和 android 插件,您似乎不需要任何其他东西,只需遵循 build.gradle 即可让测试与 multiDexEnabled true 一起工作:

...
android {
...
defaultConfig {
...
testInstrumentationRunner "com.android.test.runner.MultiDexTestRunner"
}
}

(我有 com.android.tools.build:gradle:1.5.0)

关于android - MultiDexTestRunner 不适用于 MultiDexApplication,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29024667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com