小蛙前天看到Android SDK r17,想說來升級一下好了,看看有沒有什麼新的feature,結果沒升還好,一升就花去了好長一段時間,真是令人不開心 … 如果有網友在升級r17後也遇到「NoClassDefFoundError」的情況,這篇文章也許可以幫到您。

升級完r17後是悲劇的開始,原本還能使用的東西,升級完就通通都不能用了,一度懷疑是自己把code改壞了,但沒來由的每一個專案都壞吧!於是矛頭指向SDK r17,再把專案重新建立,一個檔案一個檔案擺進去看看,時好時壞…還是找不到邏輯可言>_<因為小蛙的軟體有使用到Application,而錯誤訊息的第一行就是找不到Application的錯誤,誤導了小蛙的方向,一直以為是Application造成的問題,也嘗試了StackOverflow有人回答Application的android:name=”ApplicationBanner”拿掉,問題依舊。
甚至更改了JDK的版本看看,因為之前小蛙開發的環境太舊了,想說換回舊版本的會不會就可以運作,結果也還是一樣,更出現了「VerifyError」的錯誤,搞的小蛙一頭霧水…
根據「android sdk r17 error」當關鍵字google後終於找到了答案…竟然是這麼…令人無言的問題,小蛙最後是跟著How to fix the “NoClassDefFoundError” with ADT 17 @ Foxykeep on Android這篇文章裡面提到的方法做,就解決了「NoClassDefFoundError」的問題,更多細節網友可以連過去看看。小蛙就簡短記錄一下解決方法。
更新完android sdk r17 + ADT 17後,從Eclipse可以看到原本從外部引入的套件會在Package Explorer裡面Referenced Libraries中,而新版本的則是放在Android Dependencies裡面。小蛙的資料夾結構是在專案下建立一個lib的資料夾,這時候新增到Build Path的JAR檔都會跑到Reference Libraries造成錯誤,解決的方法只要把lib更改名稱成libs,所有libs下的JAR檔會自動被引入到Android Dependencies,試著重跑專案看看,終於不會再出現NoClassDefFoundError的錯誤了!真是…沒事還是別亂升級的好…不然就是先做好功課,看看升級之後的版本有沒有什麼災情傳出才好!
相關資源:
How to fix the “NoClassDefFoundError” with ADT 17 @ Foxykeep on Android
Ksoap2 Error after Updating Android SDK and ADT @ StackOverflow
NoClassDefFoundError when running Instrumentation test with ant @ StackOverflow
VerifyError in android test-project build tools v17 @ StackOverflow
Dealing with dependencies in Android projects @ Android Tools Project Site

 

4 Replies to “Android SDK r17 NoClassDefFoundError”

  1. 我也擔心更新後會遇到一堆問題,
    看完你的文章後,就比較沒那麼擔心了
    感謝你

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *