2012-03-26 81 views
55

我在eclipse IDE中有一個Android項目正在工作。經過一些導入和測試後,我收到錯誤:java.lang.NoClassDefFoundErrorAndroid java.lang.NoClassDefFoundError

在我的項目中,我有兩個包:主包和一些類的第二個包。

當我嘗試從主活動類中的第二個包類實例化對象時,出現此錯誤。

這裏是logcat的:

FATAL EXCEPTION: main 
java.lang.NoClassDefFoundError: com.neurospeech.wsclient.MDPIforEditorialBoard 
at milos.mdpi.Journals.<init>(Journals.java:41) 
at java.lang.Class.newInstanceImpl(Native Method) 
at java.lang.Class.newInstance(Class.java:1409) 
at android.app.Instrumentation.newActivity(Instrumentation.java:1040) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1777) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893) 
at android.app.ActivityThread.access$1500(ActivityThread.java:135) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:150) 
at android.app.ActivityThread.main(ActivityThread.java:4389) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
at dalvik.system.NativeStart.main(Native Method) 

找到了解決我的問題:

該解決方案可以在這裏找到:http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

+5

你把你的android sdk升級到17了嗎? – pleerock 2012-03-26 11:12:06

+0

是@Pleerock,明斯基的答案解決了這個問題。非常感謝你。 – 2012-03-26 11:32:47

+0

查看本問與答。爲我工作! http://stackoverflow.com/questions/16641739/android-error-caused-by-java-lang-noclassdeffounderror-android-support-v4-ut – MSquare 2013-05-28 10:51:06

回答

55

你最近更新你的Eclipse Android插件( adt r17)?那麼下面的鏈接可能會有所幫助:

How to fix the classdefnotfounderror with adt-17

更新:因爲這個問題出現了一年過去了。我會保持聯繫,因爲即使在2013年,它似乎可以幫助一些人解決問題。但請小心你在做什麼,請參閱下面的Erics評論。 當前ADT版本是22,我建議使用最新版本。

+0

很好,這解決了我的問題,非常感謝。 – 2012-03-26 11:32:05

+1

這也適用於我,但是我不得不臨時切換項目目標(從我的情況2.2到4.0.3)以使其生效。可能這是因爲我的庫已經存儲在一個名爲「libs」的目錄中 – 2012-04-09 16:59:29

+2

警告:如果你按照這些說明去掉你的「Android Dependencies」虛擬文件夾,那麼這個鏈接就是爲了擺脫你的Libraries選項卡中的所有內容,將不得不創建一個新項目並從頭開始重新構建您的程序以重新獲得它。 – 2013-09-12 21:48:14

17

我僅僅通過增加主體工程的私人圖書館在這裏導出固定的問題:

Project Properties->Java Build Path->Order And Export 

並確保Android的私家藏書進行檢查。

截圖:

enter image description here

確保google-play-services_lib.jargoogle-play-services.jar進行檢查。清理項目並重新運行,classNotfound異常消失。

+0

,它爲我解決了它。謝謝。僅供參考,發生這種情況後,通過GIT放棄對項目的.classpath文件所做的更改並再次選擇「Android專用屬性」實際上將這兩個額外的行添加回.classpath。 – Erwan 2013-10-10 02:37:03

+0

這對我有用。謝謝。 – adrian4aes 2014-12-22 16:12:37

1

Imaage

進入購買,並從項目屬性出口,確保你包括出口所需的罐子,這爲我做

27

編輯順序構建路徑,這個工作爲了我。

/src

enter image description here

+0

每次當我在/ src之前放入/ gen時,eclipse會佔用整個內存並凍結我的電腦 – sma 2013-10-11 20:41:41

1

我碰到這個問題了幾次打開舊項目,其中包括其他Android庫之前確保/gen是。適用於我的是:

將Android移動到的頂部並點擊取消選擇並導出

是的,這確實有所不同。也許是時候讓我放棄Android Studio的ADT了!

1

如果你試圖包含一個用jdk 1.7而不是1.6編譯的jar,你也可以得到這個錯誤。

就我而言,我想通了這一點,試圖代替ADT打包我由SDK提供的Ant腳本程序,我注意到這些錯誤,ADT沒有告訴我:

[dex] Pre-Dexing libjingle_peerconnection.jar -> libjingle_peerconnection-2f82c9bf868a6c58eaf2c3b2fe6a09f3.jar 
    [dx] 
    [dx] trouble processing: 
    [dx] bad class file magic (cafebabe) or version (0033.0000) 
    [dx] ...while parsing org/webrtc/StatsReport$Value.class 
    [dx] ...while processing org/webrtc/StatsReport$Value.class 

我用jdk 1.6重新編譯了我的jar,錯誤已修復。

1

嘗試將Project -> Properties -> Java Build Path -> Order & Export確認Android的私家藏書被檢查的項目,併爲您正在使用的應用程序的所有其他庫項目。

0

檢查Java構建路徑後,然後在清單文件中添加代碼行。

<meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" />