使用Gradle 0.9和Android Studio的Robotium测试用例,迁移到Gradle 0.9失败

时间:2014-03-10 15:11:41

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

安装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.   
  3. 将来自distributionUrl = http \://services.gradle.org/distributions/gradle-1.9-all.zip的gradle-wrapper.properties更新为distributionUrl = http \://services.gradle.org/distributions/gradle -1.11-all.zip
  4.   
  5. 按照http://tools.android.com/tech-docs/new-build-system/migrating_to_09的指南告诉我将testTder重命名为androidTest并将测试依赖项从instrumentTestCompile更新为androidTestCompile,我现在正在使用androidTestCompile'c​​om.jayway.android.robotium:robotium-solo:5.0 0.1'
  6.   

我的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。

1 个答案:

答案 0 :(得分:4)

0.9 gradle工具版本中有一些东西

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