0
我們正在嘗試將robolectric集成到我們的項目中,但運行了 ,出現了一些意想不到的問題。Robolectric NoClassDefFoundError with org.apache packages
當我們不使用Robolectric時,項目編譯得很好。但是,使用Robolectric運行簡單測試時,我們在org.apache.http包 中獲得了NoClassDefFoundError。
Exception in thread "Thread-1" java.lang.NoClassDefFoundError: org/
apache/http/HttpRequest
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
at javassist.Loader.findClass(Loader.java:379)
at
com.xtremelabs.robolectric.bytecode.RobolectricClassLoader.findClass(Robole ctricClassLoader.java:
60)
at javassist.Loader.loadClass(Loader.java:311)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at
com.xtremelabs.robolectric.bytecode.RobolectricClassLoader.loadClass(Robole ctricClassLoader.java:
37)
at se.hsr.android.Info.updateInfoFromWebService(Info.java:57)
at se.hsr.android.Info$2.run(Info.java:99)
Caused by: java.lang.ClassNotFoundException: caught an exception while
obtaining a class file for org.apache.http.HttpRequest
at javassist.Loader.findClass(Loader.java:359)
at
com.xtremelabs.robolectric.bytecode.RobolectricClassLoader.findClass(Robole ctricClassLoader.java:
60)
at javassist.Loader.loadClass(Loader.java:311)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at
com.xtremelabs.robolectric.bytecode.RobolectricClassLoader.loadClass(Robole ctricClassLoader.java:
37)
... 11 more
Caused by: java.lang.IllegalStateException: shouldn't be modifying
bytecode after we've started writing cache!
class=org.apache.http.HttpRequest
at
com.xtremelabs.robolectric.bytecode.AndroidTranslator.onLoad(AndroidTransla tor.java:
68)
at javassist.Loader.findClass(Loader.java:340)
... 15 more
我們正在使用Maven來構建我們的項目,我們已包括HTTP客戶端4.1(因爲我們是依賴於HTTP-MIME 4.1從Apache 庫)。
由於Robolectric jar默認包含httpclient 4.0.3,因此我們無法理解它爲什麼找不到http類。我們假設它有 是與AndroidTranslator試圖修改字節碼(以 與在Dalvik JVM兼容?)
如果有人能在這個問題上提供一些線索,我們將非常感激 。
固定它同樣的問題,你缺少的Robolectic罐子依靠的依賴關係。嘗試下載Robolectric-all.jar或Robolectric-withDependencies.jar – Blundell 2011-12-09 14:16:51