2012-05-03 2 views
4

Я использую greenDao для доступа к базе данных на своем телефоне Android. Все кажется прекрасным и соблюдается. Но когда я запускаю программу, она разбилась на DaoMaster.java -> класс OpenHelper, метод onCreate при createAllTables (db, false);NoClassDefFoundError при использовании greenDao

Ниже сообщение Исключения:

>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

Я решил проблему. Я использовал файл greenDao.jar из проекта DaoExample. Способ решить это - удалить исходный файл greenDao.jar из моего пути сборки java. Создайте папки для вызовов в моем проекте. скопируйте файл geenDao.jar из папки libs в проекте DaoExample и вставьте его в файл libs в моем собственном проекте. Перейдите в путь сборки Java, библиотеки, импортируйте jar и добавьте вновь вставленный файл jar. Вала ~

+0

Кажется, так просто. Спасибо, что опубликовали ваше разрешение. –

0

Решение ультра проста - обеспечить Maven зависимости экспортируются:

  1. Project Properties ->Java Build Path ->Order and Export -> Tick Maven Dependencies Project Properties
  2. Очистка проекта