所以我使用的是Robotium,我的测试类正在扩展ActivityInstrumentationTestCase2
类。我已经在我的主项目中导入了v7支持库,并在测试项目中导入了库。
现在我不明白的是,当我更改受测试的类以扩展Activity
时,测试类正在工作,但当我将其更改为ActionBarActivity
时,它返回NoClassDefFoundError
。
我错过了什么吗?
这是我正在获取的日志
04-11 21:32:16.551: E/dalvikvm(23925): Could not find class 'com.example.project.ActivityClass', referenced from method com.example.project.tests.ActivityClass.<init>
答案 0 :(得分:4)
确保导出测试项目中引用的v7支持库。
右键单击测试项目,properties-&gt; java build path-&gt; order and export选项卡。
有关示例,请参阅此处“安装”部分下的第5步:http://www.stevenmarkford.com/android-ui-testing-with-espresso-basics-tutorial/(虽然这显示了如何导出espresso库,但在这种情况下也是如此)
答案 1 :(得分:2)
我认为你的库v7 app compat存在导入问题。
试试这个:
从"sdk/extras/android/support/v7/appcompat".
项目中的参考库(对于Eclipse,"Properties - Android - Add"
)。
构建项目(对于Eclipse,"Projects - Build All"
)。确保您的主项目gen文件夹中有"android.support.v7.appcompat"
。
如果仍然无法解决您的问题,请重启eclipse并清理并重建项目
如果问题仍然存在,请从您的计算机中删除支持库并重新下载并按照上述步骤操作。
答案 2 :(得分:0)
build.gradle
中的此代码为我解决了类似的问题:
configurations {
androidTestCompile.exclude group: 'com.android.support', module: 'support-v4'
}
更多here。