android instumentation测试失败

llycmphe  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(304)

我正在用espresso构建一些ui测试,在我访问renderscript用于模糊图像的应用程序中的视图之前,一切正常。
测试失败,错误为:
java.lang.illegalaccesserror:预验证类中的类引用已解析为意外实现
从我在google上看到的情况来看,出现这种情况似乎是因为测试应用程序中有两个相同类的示例,而且大多数解决方案都暗示问题可能是 guava 库添加了两次。但这不是我的情况,因为在renderscript被示例化的代码行中,它显然失败了。
你经历过类似的事情吗?如果有任何指导,我将不胜感激。

sd2nnvve

sd2nnvve1#

好吧,我用了一点小技巧来解决这个问题。
黑客是有一个标志类(可以是空的)在 androidTest->java->com (位置并不特别,但重要的是 androidTest ).
像这样:

public class TestsRunningFlag {
}

然后有一个实用方法来检查是否可以加载该类。

/**
     * A hacky way to determine whether the application is running normally,
     * or as part of an instrumentation test.
     */
    public static boolean isTestMode(Context context) {
        boolean result;
        try {
            context.getClassLoader().loadClass("com.TestsRunningFlag");
            result = true;
        } catch (final Exception e) {
            result = false;
        }
        return result;
    }

然后根据是否处于测试模式,使用renderscript处理图像。

相关问题