2013-12-14 76 views
0

在模擬器Nexus S平臺2.3.3上使用api 10執行android應用程序時,出現以下錯誤。它在Nexus 4 Android 4.3上使用api 18時效果很好.AppDatabase擴展了SQLiteOpenHelper。Android API 10上的Java.Lang.VerifyError

代碼:

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) ; 

     } 
    } 

錯誤堆棧跟蹤:

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) 
+0

沒有'AppDatabase'的代碼,任何人都很難幫助你。我會查看你的數據成員,看看它們中的任何一個是否是API級別10中不存在的數據類型。你也可以手動運行Lint,讓它指出你的問題,假設你沒有使用註釋或某些東西阻止它。 – CommonsWare

+0

@CommonsWare,感謝您的回覆,請檢查我的編輯,這可能會更好地澄清問題。 – spacebiker

回答

6

我終於找到了對的VerifyError異常的罪魁禍首。這是由於SQLiteCantOpenDatabaseException,直到API 11才被包含。僅使用SQLiteException來捕獲AppDatabase類中的錯誤完成了這項工作。

+0

很好的回答:) – dasdasd