J'ai un db dans le dossier des actifs qui est copié dans l'application. Cela se fait exactement de la même manière qu'ici: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/sqlite erreur setlocale
Tout fonctionne très bien dans Android 2.3.3 et supérieur mais ne fonctionne pas sur les versions ci-dessous. Ce sont les téléphones que j'ai testé l'application sur:
Samsung Galaxy S II - Android 2.3.3 - travail
Sony Ericsson néo - Android 2.3.3 - travail
LG P350 - Android 2.2. 2 - erreur de copie db
Sony Ericsson Xperia X8 - ANDROID 2.1 mise à jour 1 - erreur de copie db
Samsung GalaxyACE Android 2.2.1. - erreur de copie db
Samsung Galaxy Tab 10.1 Android 3.1 - travail
L'erreur se présente comme suit:
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)
assurez-vous d'avoir une table android_metadata dans votre base de données et les paramètres régionaux définis par défaut. – Sunny
la seule entrée dans android_metadata est en_US – Radek
en fait vous n'avez pas besoin de créer cette table dans mon cas je crée seulement mes tables et quand je tire la base de données de l'explorateur de fichiers dans eclipse il a créé automatiquement cette table.so supprime la table android_metadata et désinstallez votre application exécutez le projet again.if vous voulez que je puisse poster le code. – Sunny