2013-03-11 41 views
0

我想從Eclipse切換到適用於Android的IntelliJ IDEA開發。從IntelliJ和Android開始CassNotFoundException

目前我有一個Android應用程序依賴於超過10個庫(包括第三個庫和罐子)。

首先,當我嘗試運行該應用程序時,出現了Dalvik DEX錯誤。我可以解決這個問題,修改我的項目的依賴關係的範圍,而不是我的項目。我這樣做後,我得到這個其他錯誤,我不知道如何解決它...

03-11 16:10:10.423: ERROR/AndroidRuntime(10258): FATAL EXCEPTION: main 
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.niula.loodic.android/com.niula.loodic.android.ui.HomeActivity}: java.lang.ClassNotFoundException: Didn't find class "com.niula.loodic.android.ui.HomeActivity" on path: /system/framework/com.google.android.maps.jar:/data/app/com.niula.loodic.android-1.apk 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5041) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
    at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.niula.loodic.android.ui.HomeActivity" on path: /system/framework/com.google.android.maps.jar:/data/app/com.niula.loodic.android-1.apk 
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
    at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 

爲什麼發生呢?

Didn't find class "com.niula.loodic.android.ui.HomeActivity" on path: /system/framework/com.google.android.maps.jar:/data/app/com.niula.loodic.android-1.apk 

任何幫助,歡迎,我不能附加一些圖像,因爲我不知道問題的根源。其實我從編輯器中得到一些奇怪的錯誤,因爲谷歌地圖V2。

enter image description here enter image description here enter image description here enter image description here

http://imageshack.us/f/199/captura1.png/ 提前http://imageshack.us/f/708/captura2zt.png/ http://imageshack.us/f/571/captura3h.png/ http://imageshack.us/f/835/captura4qk.png/

感謝

編輯:如果我改變我所有的模塊(庫)的依賴性「SC OPE」 「編譯」,這是錯誤我DEX執行過程中得到:

Android Dex: [loodic] java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat; 

enter image description here

+0

將範圍從提供更改爲編譯時會發生什麼情況。根據我的經驗,如果您有任何模塊依賴的.jars或模塊,它應該設置爲Compile。另外,如果我正確解釋這一點,Provide只在編譯期間提供依賴關係,而不是運行時間(http://www.jetbrains.com/idea/webhelp/dependencies-tab.html) – 2013-03-11 16:08:25

+0

看看我編輯過的帖子。 – cesards 2013-03-11 16:17:42

回答

1

啊,意想不到的頂級異常錯誤...

Android Dex: [loodic] java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat;一塊應該給你瞭解發生了什麼。

基本上,如果你正在使用的各種模塊同樣採用Android支持庫文件,確保它們指向SAME .jar文件,而不是同一個文件的副本。這應該可以解決你的Dex錯誤。

+0

是的,這是點...非常感謝!我認爲IntelliJ作爲Eclipse工作。處理這個問題的典型方法是什麼?複製library.jar到你的主模塊,並確保使用這個jar指向你所有的模塊依賴? – cesards 2013-03-11 16:36:44

+0

這就是我如何做到的。 – 2013-03-11 16:39:04