繁体   English   中英

运行Android测试时为什么会出现非法访问错误?

[英]Why do I get a Illegal Access Error when running my Android tests?

在模拟器上运行我的Android测试时,我得到以下堆栈跟踪:

java.lang.NoClassDefFoundError: client.HttpHelper
at client.Helper.<init>(Helper.java:14)  
at test.Tests.setUp(Tests.java:15)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:164)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:151)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:425)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1520)
Caused by: java.lang.IllegalAccessError: cross-loader access from pre-verified class
at dalvik.system.DexFile.defineClass(Native Method)
at dalvik.system.DexFile.loadClass(DexFile.java:193)  
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:203)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
... 11 more

我从一个额外的项目中运行我的测试。 从其他项目加载类似乎存在一些问题。 我之前已经进行了测试,但现在他们失败了。 测试项目没有问题。

助手班的第14行是:

this.httpHelper = new HttpHelper(userProfile);

我启动了一个负责执行httpqueries的HttpHelper类。 我觉得这个助手类不再可用,但我不知道为什么。

我遇到了同样的问题,但在我的情况下,我将库引用添加到应用程序和测试项目中。

通过从测试项目中删除对库的引用并仅保留对应用程序项目的引用,问题得以解决。 java.lang.IllegalAccessError异常和消息'由意外DEX解析的类'是帮助解决此问题的线索。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM