2011-10-13 3 views
2

나는 앱에 복사 된 DB in assets 폴더가 있습니다. 그것은 정확히 여기에서와 같은 방식으로 수행됩니다 : http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/sqlite setlocale 오류

모두 잘되고 안드로이드 2.3.3 이상에서 작동하지만 아래 버전에서는 작동하지 않습니다. 2.3.3 인조 인간 - -

소니 에릭슨 네오 작업 - 2.3.3 인조 -

LG P350 작업 - 2.2 인조

삼성 갤럭시 S II :이 난에 응용 프로그램을 테스트 한 휴대폰이다. 2 - 오류 복사 dB

소니 에릭슨 엑스 페리아 X8 - 안드로이드 2.1 업데이트 1 -

삼성 GalaxyACE 안드로이드 2.2.1 오류 복사 dB. - 오류 복사 dB

삼성 갤럭시 탭 10.1 안드로이드 3.1 - 다음과 같은 오류가 보이는

작업 : DB를가 너무 커서 때문에

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

데이터베이스에 android_metadata 테이블이 있고 로캘이 기본값으로 설정되어 있는지 확인하십시오. – Sunny

+0

android_metadata 유일한 항목은 en_US – Radek

+0

실제로 내 경우에만이 테이블을 만들 필요가 없습니다 내 테이블을 만들고이 테이블을 자동으로 만든 이클립스에서 파일 탐색기에서 데이터베이스를 당길 때 android_metadata 및 테이블 삭제 앱을 다시 실행하십시오. 코드를 게시 할 수 있습니다. – Sunny

답변

1

문제는 안드로이드의 이전 버전에서 작동하지 않는 그 (것)들을위한 그리고 한계는 18 메가 비트이다. 이에 대한 해결책은 1MB의 18 개 파일을 분할하는 것입니다.