ADT 17之後使用第三方函式庫會產生NoClassDefFoundError的解法

這幾天在為之前開發的 App 改版,修改完後在裝置上測試時,咦? 怎麼一啟動就出現錯誤? 看了一下 Log 是 AdMob 函式庫裡的 AdView 出現 NoClassDefFoundError 錯誤...怪了,我根本沒動到 AdMob 相關的程式碼啊?

查了一下發現原來是 ADT 17 有修改函式庫引用方式,解法有以下兩種:
方法1: 在專案目錄下建一個 libs 資料夾,然後將你用到的第三方函式庫 (.jar) 放在裡面
方法2: 在專案 Properties -> Java Build Path -> Order and Export 裡勾選你用到的第三方函式庫

方法2示意圖

重新編譯、執行,OK了~
這個錯誤比較機車的是在編譯時期不會出錯,到執行時才死給你看。只能說 ADT 你好樣的!

參考連結:
http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17
http://tools.android.com/recent/dealingwithdependenciesinandroidprojects

這個網誌中的熱門文章

Android Studio 如何調整字型大小

App在Google Play被停權與恢復的經驗分享

Android Studio 無法在實機上 Run/Debug 程式?