Nil*_*zor 5 android android-testing
所以我NoSuchMethodError从Android Studio运行我的Activity/instrumentation测试,在代码行上试图从单元测试中调用库模块中的方法.
所以这是我的测试:
public class MainActivityTest extends ActivityInstrumentationTestCase2 {
public void testMainActivity() {
final MainActivity target = (MainActivity) getActivity();
MyLibarary.someStaticMethod(); // yields java.lang.NoSuchMethodError
}
Run Code Online (Sandbox Code Playgroud)
这是什么交易?我已经将我的库定义为build.gradle中的"编译" - 依赖,并且编译得很好.该库也可以从主应用程序类中调用而不会出现问题.只有当我从测试中调用它时才会失败.我的应用程序和我的测试都在同一模块中.
我已经尝试手动运行clean任务,assembleDebug和assembleDebugTest任务.徒劳无功.
项目结构:
Root
|---MyApp
| |---src/main/...
| |---src/androidTest/...
|----MyLibrary
Run Code Online (Sandbox Code Playgroud)
运行Android Studio v1.0.2 Gradle构建工具v1.0.0使用默认的Instrumentation测试运行器从AS的Run/Debug配置作为模块"MyApp"上的"Android Test"运行.
好的,这个有点棘手.关键词:proguard minify.由于迄今为止新实现的方法仅被仪器测试使用,因此proguard没有了解其使用情况,因此在proguardDebugTest构建步骤中将其从DEX中删除.
解决方案:在调试版本中禁用缩小(在gradle中:) android.buildTypes.debug.minifyEnabled false,或使用主应用程序中的方法.
| 归档时间: |
|
| 查看次数: |
2879 次 |
| 最近记录: |