2

市場にアプリを公開しました。SG3には乗らないとのコメントを頂きました。私の友人の一人は、それが彼女の電話に出ていないと私に言いました. 彼は SG1 (2.3.3) を持っているので、Galaxy 固有の問題かもしれません (Galaxy S で動作します)。彼女は私にスタックトレースを送ってくれました:

java.lang.RuntimeException: アクティビティ ComponentInfo を開始できません {com.b2creative.b2callstats/com.b2creative.b2callstats.Calllogs}: android.database.sqlite.SQLiteException: android.app.ActivityThread.performLaunchActivity(ActivityThread でデータベース ファイルを開けません.java:1651) で android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) で android.app.ActivityThread.access$1500(ActivityThread.java:117) で android.app.ActivityThread$H.handleMessage(ActivityThread.java) :935) android.os.Handler.dispatchMessage(Handler.java:99) で android.os.Looper.loop(Looper.java:123) で android.app.ActivityThread.main(ActivityThread.java:3687) で 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:842) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) 原因: android.database.sqlite.SQLiteException: android.database.sqlite.SQLiteDatabase.dbopen(Native Method) で android.database.sqlite.SQLiteDatabase.(SQLiteDatabase.java:1849) で android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java: 820) android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:854) で android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:847) で android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:630) ) android.database.sqlite.SQLiteOpenHelper の android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203) で。getWritableDatabase(SQLiteOpenHelper.java:118) com.b2creative.b2callstats.HotOrNot.open(HotOrNot.java:69) com.b2creative.b2callstats.Calllogs.refreshList(Calllogs.java:1579) com.b2creative.b2callstats.Calllogs .onCreate(Calllogs.java:277) で android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) で android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) ... 11 詳細

グーグルで調べていると、いくつかの同様のエラーが見つかりましたが、この問題の原因を突き止めることができず、私の電話や ZTE Blade と Samsung では表示されないため、テストが非常に困難です。我が家にあるgalaxy mini。

彼女の電話でデータベースのパスを確認したかったのですが、最初に強制終了するため、取得できませんでした。私の電話では、デフォルト パスは /data/data/com.b2creative.b2callstats/databases/CallDatabase です。

たぶん、彼女の電話にはそのようなパスはありませんか?

私のsqliteopenhelperクラスの一部:

private static class DbHelper extends SQLiteOpenHelper {
        public DbHelper(Context context) {
        super (context, DATABASE_NAME, null, DATABASE_VERSION);

        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + 
              KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
              KEY_NAME + " VARCHAR(200) NOT NULL, " +
              KEY_PHONE + " VARCHAR(70) NOT NULL, " +
              KEY_TYPE + " CHAR(1) NOT NULL, " +
              KEY_DURATION + " VARCHAR(70) NOT NULL, " +
              KEY_DATE + " VARCHAR (20) NOT NULL, " +
              KEY_CONTACTID + " VARCHAR (50) NOT NULL)"
              );
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
            onCreate(db);
        }
    }

    public HotOrNot(Context c){
        ourContext = c;
        }

    public HotOrNot open() throws SQLException{ 
        ourHelper = new DbHelper(ourContext);
        ourDatabase = ourHelper.getWritableDatabase();    //error line 08.19.2012 6:32:57 PM
        return this;
        }

    public void close(){
        ourHelper.close();
        }

PS: 彼女はいいですね... :)

4

0 に答える 0