gpt4 book ai didi

Android Instrumentation 测试没有从库项目中找到类

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:14:16 44 4
gpt4 key购买 nike

所以当我从 Android Studio 运行我的 Activity/instrumentation 测试时,在尝试从单元测试调用库模块中的方法的代码行上,我得到了一个 NoSuchMethodError

所以这是我的测试:

public class MainActivityTest extends ActivityInstrumentationTestCase2 {
public void testMainActivity() {
final MainActivity target = (MainActivity) getActivity();
MyLibarary.someStaticMethod(); // yields java.lang.NoSuchMethodError
}

这是怎么回事?我已将我的库定义为 build.gradle 中的“编译”依赖项,并且编译正常。该库也可以毫无问题地从主应用程序类中调用。只有当我从测试中调用它时它才会失败。我的应用程序和我的测试在同一个模块中。

我试过手动运行 clean 任务、assembleDebug 和 assembleDebugTest 任务。没有用。

项目结构:

Root
|---MyApp
| |---src/main/...
| |---src/androidTest/...
|----MyLibrary

运行 Android Studio v1.0.2Gradle 构建工具 v1.0.0使用默认 Instrumentation 测试运行程序从 AS 的运行/调试配置在模块“MyApp”上作为“Android 测试”运行。

最佳答案

好吧,这个有点棘手。关键字:proguard 缩小。由于到目前为止新实现的方法被仪器测试使用,proguard 没有使用它,因此在 proguardDebugTest 构建步骤中将其从 DEX 中删除。

解决方案:要么在调试构建中禁用缩小(在 gradle 中:android.buildTypes.debug.minifyEnabled false),要么在主应用程序中使用该方法。

关于Android Instrumentation 测试没有从库项目中找到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28237696/

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