2014-01-17 37 views
3

我終於找到了我的crouton庫,在得到關於SO的this問題的解決方案之後。 我被引導到maven central,我在頁面底部的列表中下載了crouton-1.8.4大小爲24kb的第三個。然後我將它複製到我的android項目的libs文件夾中,將它添加到構建路徑中,並在順序和導出面板中對其進行檢查。java.lang.NoClassDefFoundError當eclipse中的crouton庫

這解決了我在之前詢問的問題中遇到的問題。

我試圖運行的代碼是Crouton.makeText(this, "BAD Crouton", Style.ALERT); 只是爲了看看它是否有效。我正在4.4.2模擬器上測試它。而且我還在2.2模擬器上嘗試過,添加Style.Builder後,它需要在較低的設備上工作。我遇到同樣的問題。

但是,當我的快樂是短暫的,因爲當我在模擬器上測試它時,這裏是我的logcat出現的錯誤。

01-17 03:15:44.537: E/AndroidRuntime(2203): FATAL EXCEPTION: main 
01-17 03:15:44.537: E/AndroidRuntime(2203): Process: com.example.dester, PID: 2203 
01-17 03:15:44.537: E/AndroidRuntime(2203): java.lang.NoClassDefFoundError: de.keyboardsurfer.android.widget.crouton.Style 
01-17 03:15:44.537: E/AndroidRuntime(2203): at com.example.dester.MainActivity.onCreate(MainActivity.java:17) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.app.Activity.performCreate(Activity.java:5231) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.app.ActivityThread.access$800(ActivityThread.java:135) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.os.Handler.dispatchMessage(Handler.java:102) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.os.Looper.loop(Looper.java:136) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at android.app.ActivityThread.main(ActivityThread.java:5017) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at java.lang.reflect.Method.invokeNative(Native Method) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at java.lang.reflect.Method.invoke(Method.java:515) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
01-17 03:15:44.537: E/AndroidRuntime(2203): at dalvik.system.NativeStart.main(Native Method) 

當我第一次我想這一定是一些簡單的錯誤,所以我清洗和再次重修,並仍然得到了同樣的錯誤。然後我搜索了java.lang.NoClassDefFoundError的信息,我發現它與虛擬機沒有找到一個它被要求加載的類有關。在這種情況下,這將是Style類。

我已經花了近24小時在這個,並嘗試了很多解決方案,都沒有用。

只是櫃面,我的Java編譯器遵從性級別是1.6,我使用JRE6 感謝

+2

我假設你正在使用Crouton 1.8.2,因爲沒有1.8.4呢。請將您正在使用的代碼添加到您的項目中以引用您的問題。校驗和「ba14b78124a9945dab574c195b8b60633fd61f99」的文件包含'Style.class'。 – keyboardsurfer

+0

您是否將jar文件粘貼到libs文件夾中 – Naga

+0

@keyboardsurfer是它的1.8.2抱歉。是的,我正在使用你所說的校驗和文件。 – KingBryan

回答

0

右擊你的項目> 選擇Build Path>Configure Build Path>轉到Order & Export Tab,做檢查您添加的crouton-1.8.2.jar(罐子油煎麪包塊)最後OK

然後嘗試清理該項目並再次運行。

+0

已經做到了。得到了相同的結果 – KingBryan

0

轉到Project->Properties->Java Build Path比選擇Order and export選項卡。設置android-support-v4.jar庫並將其放到列表的頂部。然後清理並重建項目。

+0

我試過這個,它不起作用。 – KingBryan

2

如果您不需要Crouton 1.8.2中的任何新功能,請嘗試1.8.1(https://github.com/keyboardsurfer/Crouton/wiki/Changelog)。我有完全相同的問題,但是當我使用1.8.1時一切正常。我也一直在努力解決這個問題,並且還沒有找到解決方案。我想知道它是否與它現在使用Java 1.7的事實有關...

0

這可能是由於您的構建系統和創建jar文件的方式不兼容。 Crouton庫只包含一個包,因此將它添加到應用程序中很容易,並可以擺脫jar。只需在您的項目中添加this folder下的代碼即可。你只需要最新的SDK,你很好。

2

Crouton 1.8.3已發佈並回滾到Java 6源代碼兼容性。 使用此版本應該可以解決問題。

相關問題