簡體   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