[英]How do you get access to a testing device's files when running instrumentation tests for 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.