【问题标题】:Robotium test case with Gradle 0.9 and Android Studio, migration to Gradle 0.9 fail使用 Gradle 0.9 和 Android Studio 的 Robotium 测试用例,迁移到 Gradle 0.9 失败
【发布时间】:2014-03-10 15:11:41
【问题描述】:

安装 Android Studio 0.5.1 时,我收到以下消息:

该项目正在使用不受支持的 Android Gradle 插件版本 (0.7.3)。 0.9.0 版在构建语言中引入了不兼容的更改。请阅读迁移指南以了解如何更新您的项目。

我一直在尝试迁移我的项目,该应用运行良好,但我无法让我的 Robotium 测试用例运行。

这是我尝试过的:

  1. 将 build.gradle 从 0.7 更改为 0.9:classpath 'com.android.tools.build:gradle:0.9.+'
  2. 将 gradle-wrapper.properties 从 distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip 更新为 distributionUrl=http\://services.gradle.org/distributions/gradle -1.11-all.zip
  3. 按照http://tools.android.com/tech-docs/new-build-system/migrating_to_09 的指南告诉我将 testfolder 重命名为 androidTest 并将测试依赖项从 instrumentTestCompile 更新为 androidTestCompile,我现在正在使用 androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.0.1 '

我的 build.gradle 文件是这样的

apply plugin: 'android'

sourceSets {
    main {
        java.srcDirs = ['src/main/java']
        resources.srcDirs = ['src/main/res']
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.2'
    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 19
        versionCode 116
        versionName "1.5.5"
    }

    defaultConfig {
        testPackageName "com.foo.androidTest"
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.0.1'
    compile 'com.android.support:appcompat-v7:19.0.1'
    compile 'org.apache.commons:commons-lang3:3.0'
    compile 'com.jayway.android.robotium:robotium-solo:5.0.1'

    androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.0.1'
}

我不知道我错过了什么,我在跑步时得到的只是:

java.lang.NoClassDefFoundError: com.foo.androidTest.TestSimple$1
at com.foo.androidTest.TestSimple.setUp(TestSimple.java:47)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1740)

如果您想知道 setUp 方法,它看起来像这样。

45:    public void setUp() throws Exception {
46:            solo = new Solo(getInstrumentation(), getActivity());
47:            falseCondition = new Condition() {
48:                @Override
49:                public boolean isSatisfied() {
50:                    return false;
51:                }
52:            };
53:    }

我没有更改任何 java 代码,我所做的只是安装 Android Studio 0.5.1,然后尝试迁移到 Gradle 0.9。

【问题讨论】:

  • 在我的项目中,androidTest在文件夹src下。
  • 还要确保您从 SDK 管理器下载了最新的构建工具。
  • 确保您的测试课程位于src\androidTest\java。如果 sourceSets 没有被覆盖,这是 android 默认查找它们的地方。

标签: android gradle android-studio robotium android-gradle-plugin


【解决方案1】:

0.9 gradle 工具版本有问题

src\instrumentTest\java - 适用于 0.8.+ gradle 工具版本 src\androidTest\java - 不适用于 0.9.+ gradle 工具版本

【讨论】:

    猜你喜欢
    • 2014-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 2017-11-14
    相关资源
    最近更新 更多