java.lang.IllegalAccessError:在预验证的类级裁判解决意外的得到执行,同时

2019-06-02 18:02发布

我已经使用第三方库(斑马线)项目实施后工作正常,然后实施项目后,我写了一个测试项目进行单元测试我project.After运行测试项目,主体工程,类和它的方法是不给任何错误,但如果有斑马线框架类的主要项目有得到上面的错误在运行时的那个方法内utilyzed尚未编译time.Please告诉我该怎么解决这个问题?

Answer 1:

您收到此错误的原因的第三方库引用添加两次。 你已经在测试项目的构建路径中添加应用程序的路径。 所以库参考自动添加到测试项目”。取出下属性 - >机器人在测试项目中的任何库参考。

仅供参考, 请点击这里查看详细说明 。



Answer 2:

这是因为斑马线jar文件被加载两次,你必须设置斑马线库作为“ 设置 ”(如果您正在编译使用Maven您的代码)在编译的时候,所以它不会将库添加到您的字节码。 这样你就不会得到错误



Answer 3:

不幸的是,这是我见过的最好的解决方案,它是使用脚本与这些行代码,并使用咖啡V2.0:

adb shell setprop dalvik.vm.dexopt-flags v=n,o=v
adb shell stop installd
adb shell start installd

执行它,你开始测试之前。 这是唯一需要做一次时间。



Answer 4:

我在Intelij理念改变测试项目设置。 转到模块 - >相关性,然后将测试项目的范围,以“提供”。



Answer 5:

因为我用番石榴工作和咖啡中还含有番石榴我得到这个错误。

如果您使用的摇篮和Android Studio中,您可以排除这样的依赖包:

androidTestCompile('com.jakewharton.espresso:espresso:1.1-r3') {
   exclude group: 'com.google.guava'
}


Answer 6:

取消选中的罐子(在我的情况的地图和谷歌播放服务JAR)从下Eclipse.But项目的Java构建路径“排序和导出”选项卡让他们在“库”选项卡中添加。 点击OK,洁净工程,现在建设。 有用。



Answer 7:

如果没有特别需要低版本的API(<= 19)的设备,你可以离开传递依赖,并创造更高的API版本的模拟器。

这种情况只有在其API比棒棒糖(API 21)下的设备。 运行在更高的仿真器/等于API测试21个运行正常,没有问题。



Answer 8:

我有这个错误的时候。 就在建设 - >清洁工程帮我



文章来源: java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation getting while running test project?