Datenbank-handling aufgehört zu arbeiten auf Android 2.2.1 (Desire HD 1.72.405.3)

Aus irgendeinem Grund die Datenbank-handling-Lösung beschrieben dieser Artikel funktioniert nicht auf dem HTC Desire HD, nachdem es bekam das OTA update auf 2.2.1 (1.72.405.3). Es hat funktioniert auf Desire HD vor dem update und ich habe versäumt, den Fehler zu reproduzieren, auf die tatsächlichen Geräte mit 2.1, 2.2 sowie im emulator laufen alle Versionen.

Leider kann man keine AVD für emulator mit Android 2.2.1 und ich habe versucht eine ROM basierend auf 2.2.1 (ich habe einen gerooteten normale HTC Desire) aber meine Anwendung funktioniert ohne problem auf Sie als gut. Die Frage ist also, ob es mit dem Android-SDK in gewisser Weise sollte es auch nicht, dass plötzlich das problem verursachen?

Ich weiß, das ist eine sehr spezifische Frage, aber da mehr Entwickler, als mir berichten, das problem sowie die Tatsache, dass Sie können nicht erstellen Sie ein AVD ich hoffe die Frage ist erlaubt und ich hoffe, dass jemand eine Ahnung, was möglicherweise das problem verursacht.

Hier ist ein stack-trace an meinem Market Konto von user:

Caused by: android.database.sqlite.SQLiteDiskIOException: disk I/O error
at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method)
at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:2049)
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1917)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:889)
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:168)
at com.MyApp.DataBaseHelper.createDataBase(DataBaseHelper.java:81)
at com.MyApp.InitialActivity.onCreate(InitialActivity.java:33)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2797)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1066)  

Verwandte Verfahren finden Sie auf pastebin. Da die nur einen hyperlink enthalten, können link gefunden werden konnte, in den Kommentaren unten. Beachten Sie, dass die Linie 81 fand in der stack-trace der Linie 10 auf pastebin.

  • pastebin.com/VTmCkeLq
  • Weitere Kommentare von anderen Benutzern über das gleiche Problem gelesen werden können von diesem Kommentar und unter: reigndesign.com/blog/...
  • ist die locale de_de nicht auf die neue Android 2.2.1 version? Aus dem Android source SQLiteDatabase.setLocale: "@throws SQLException wenn die Gebietsschema-konnte nicht gesetzt werden. Der häufigste Grund dafür ist, dass es keine collator verfügbar für das Gebietsschema, die Sie angefordert."
  • Es sollte in Ordnung sein. Meine sqlite-db sieht wie folgt aus: CREATE TABLE android_metadata (Gebietsschema TEXT); INSERT INTO android_metadata VALUES('de_de'); ich habe auch Hinzugefügt Flagge NO_LOCALIZED_COLLATORS zu rufen, um SQLiteDatabase.openDatabase (), aber das hat auch nicht geholfen. Ich habe das Gefühl die Datenbank beschädigt ist, bevor es versucht, öffnen Sie es und Lesen Sie locale.
  • Diese Frage scheinen mit dieser hier: stackoverflow.com/questions/4585790/...
  • So wie dieser thread stackoverflow.com/questions/4718934/... Wünschen für eine detailliertere Erklärung, wie die user dieses Threads das Problem gelöst.

InformationsquelleAutor Björn | 2011-01-10
Schreibe einen Kommentar