2012-05-03 90 views
4

我正在使用greenDao訪問我的Android手機中的數據庫。一切似乎都很好,並遵守。但是當我運行程序時,它在DaoMaster.java - > OpenHelper類中崩潰,onCreate方法在createAllTables(db,false);使用greenDao時NoClassDefFoundError

下面是異常消息:

>05-03 15:40:34.109: E/AndroidRuntime(28587): FATAL EXCEPTION: main 
05-03 15:40:34.109: E/AndroidRuntime(28587): java.lang.NoClassDefFoundError: com.hook38.sporttimer.model.sql.DaoMaster 
05-03 15:40:34.109: E/AndroidRuntime(28587): at com.hook38.sporttimer.model.sql.DaoMaster$OpenHelper.onCreate(DaoMaster.java:42) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:165) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at com.hook38.sporttimer.controller.CountdownTimerStoreController.<init>(CountdownTimerStoreController.java:32) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at com.hook38.sporttimer.controller.CountdownTimerController.<init>(CountdownTimerController.java:57) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at com.hook38.sporttimer.CountDownTimerActivity.onCreate(CountDownTimerActivity.java:49) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.app.Activity.performCreate(Activity.java:4465) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.os.Looper.loop(Looper.java:137) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at java.lang.reflect.Method.invokeNative(Native Method) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at java.lang.reflect.Method.invoke(Method.java:511) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-03 15:40:34.109: E/AndroidRuntime(28587): at dalvik.system.NativeStart.main(Native Method) 

我做了一些研究的NoClassDefFoundError,這意味着CLASSPATH沒有設置正確。但我檢查了構建路徑,greenDao.jar在庫中。有什麼我錯過了嗎?

+0

看到這個答案http://stackoverflow.com/a/10046725/1289716 – MAC

+0

stackoverflow.com/questions/9857539/noclassdeffounderror-when-googleanalyticstracker-getinstance/98576 69#9857669 – Akram

回答

7

我解決了這個問題。我正在使用DaoExample項目中的greenDao.jar文件。解決這個問題的方法是...從我的java構建路徑中移除原始的greenDao.jar。在我的項目下創建一個名爲libs的文件夾。從DaoExample項目的libs文件夾複製geenDao.jar文件,並將其粘貼到我自己的項目中的libs文件中。轉到Java構建路徑,庫,導入jar,並添加新粘貼的jar文件。瓦拉〜

+0

看起來很簡單。感謝您發佈您的決議。 –

0

的解決方案是超簡單 - 確保Maven依賴出口:

  1. Project Properties - >Java Build Path - >Order and Export - >勾選Maven Dependencies Project Properties
  2. 清理項目
相關問題