2
我在资产文件夹中有一个数据库被复制到应用程序。它的完成方式与此处完全相同:http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/sqlite setlocale错误
它在Android 2.3.3及更高版本中都可以正常工作,但不适用于以下版本。这是我所测试过的应用程序在手机上:
三星Galaxy S II - ANDROID 2.3.3 - 工作
索尼爱立信新 - ANDROID 2.3.3 - 工作
LG P350 - ANDROID 2.2。 2 - 错误复制DB
索尼爱立信Xperia X8 - 的Android 2.1更新1 - 错误复制DB
三星GalaxyACE的Android 2.2.1。 - 错误复制DB
三星Galaxy Tab 10.1的Android 3.1 - 工作
错误如下所示:
10-13 13:03:43.773: ERROR/Database(2770): SELECT locale FROM android_metadata failed
10-13 13:03:43.783: ERROR/Database(2770): Failed to setLocale() when constructing, closing the database
10-13 13:03:43.783: ERROR/Database(2770): android.database.sqlite.SQLiteException: no such table: android_metadata
10-13 13:03:43.783: ERROR/Database(2770): at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method)
10-13 13:03:43.783: ERROR/Database(2770): at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:1950)
10-13 13:03:43.783: ERROR/Database(2770): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1818)
10-13 13:03:43.783: ERROR/Database(2770): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:817)
10-13 13:03:43.783: ERROR/Database(2770): at org.com.db.DataBaseHelper.checkDataBase(DataBaseHelper.java:81)
10-13 13:03:43.783: ERROR/Database(2770): at org.com.db.DataBaseHelper.createDataBase(DataBaseHelper.java:42)
10-13 13:03:43.783: ERROR/Database(2770): at org.com.SentencesActivity.onCreate(SentencesActivity.java:49)
10-13 13:03:43.783: ERROR/Database(2770): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-13 13:03:43.783: ERROR/Database(2770): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
10-13 13:03:43.783: ERROR/Database(2770): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
10-13 13:03:43.783: ERROR/Database(2770): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
10-13 13:03:43.783: ERROR/Database(2770): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
10-13 13:03:43.783: ERROR/Database(2770): at android.os.Handler.dispatchMessage(Handler.java:99)
10-13 13:03:43.783: ERROR/Database(2770): at android.os.Looper.loop(Looper.java:123)
10-13 13:03:43.783: ERROR/Database(2770): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-13 13:03:43.783: ERROR/Database(2770): at java.lang.reflect.Method.invokeNative(Native Method)
10-13 13:03:43.783: ERROR/Database(2770): at java.lang.reflect.Method.invoke(Method.java:521)
10-13 13:03:43.783: ERROR/Database(2770): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
10-13 13:03:43.783: ERROR/Database(2770): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-13 13:03:43.783: ERROR/Database(2770): at dalvik.system.NativeStart.main(Native Method)
10-13 13:03:43.793: VERBOSE/Debugger(2770): Copying db
10-13 13:03:43.893: WARN/dalvikvm(2770): threadid=1: thread exiting with uncaught exception (group=0x40020ac0)
确保您的数据库中的android_metadata表已设置为默认值。 – Sunny
android_metadata中的唯一条目是en_US – Radek
实际上,您不需要在我的情况下创建此表我只创建我的表,并且当我从eclipse中的文件资源管理器中提取数据库时,它会自动创建此表。因此,删除表android_metadata和卸载你的应用程序再次运行项目。如果你想我可以发布代码。 – Sunny