由于RenderScript,Android检测测试失败

时间:2015-01-15 14:19:21

标签: java android gradle renderscript android-espresso

我正在使用Espresso构建一些ui测试,一切正常,直到我访问使用RenderScript模糊图像的应用程序中的视图。

测试失败并显示错误:

  

java.lang.IllegalAccessError:已解析的预验证类中的类ref   意外实施

根据我的Google搜索,似乎发生了这种情况,因为测试应用程序中有两个相同类的实例,并且大多数解决方案暗示问题可能是添加两次的guava库。但这不是我的情况,因为它在实例化RenderScript的代码行上非常清楚地失败了。

您是否经历过类似的事情?我很感激任何指导。

1 个答案:

答案 0 :(得分:0)

好的,所以我用了一点黑客来解决这个问题。

hack是在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处理图像。