Question

I get the following error when executing android app on emulator Nexus S Platform 2.3.3 with api 10. It works well on Nexus 4 Android 4.3 with api 18. AppDatabase extends SQLiteOpenHelper.

Code:

 public class AppController extends Application {

     [...]

     private static AppDatabase mDbo;

     [...]
     try {
         // Here comes the crash, it crashes immediately, i cannot step into 
         mDbo = new AppDatabase( AppDatabase.NAME,null, new AppSQLiteCursor(),AppDatabase.VERSION) ;

      }
  }

Error stacktrace:

12-14 23:04:01.996    1372-1372/com.example.myapp E/APP_ERROR﹕ VerifyError raised!
    java.lang.VerifyError: com.example.myapp.database.AppDatabase
            at com.example.myapp.AppController.onCreate(AppController.java:85)
            at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3272)
            at android.app.ActivityThread.access$2200(ActivityThread.java:117)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:130)
            at android.app.ActivityThread.main(ActivityThread.java:3683)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:507)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
            at dalvik.system.NativeStart.main(Native Method)
Was it helpful?

Solution

I finally found out the culprit for the VerifyError exception. It was due to SQLiteCantOpenDatabaseException, which was not included until API 11. Using only SQLiteException to catch the errors in AppDatabase class did the job.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top