0

(Kindle fire HD の自宅から) Web ブラウザーを開こうとすると、単に起動に失敗します。デバイスのログを確認したところ、以下の例外が見つかりました。

android.database.sqlite.SQLiteException: 読み取り専用データベースをバージョン 29 から 27 にアップグレードできません

例外をグーグル検索したところ、次のコード スニペットがこの例外をスローしていることがわかりました。誰かがこれについて明確に説明してください。そして、そのために私がしなければならないこと

try {
             mIsInitializing = true;
             String path = mContext.getDatabasePath(mName).getPath();
             db = SQLiteDatabase.openDatabase(path, mFactory, SQLiteDatabase.OPEN_READONLY,
                     mErrorHandler);
             if (db.getVersion() != mNewVersion) {
                 throw new SQLiteException("Can't upgrade read-only database from version " +
                         db.getVersion() + " to " + mNewVersion + ": " + path);
             }
4

2 に答える 2

0

private final int mNewVersion;

public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { if (version < 1) throw new IllegalArgumentException("Version must be >= 1, was " + version); if (errorHandler == null) { throw new IllegalArgumentException("DatabaseErrorHandler param value can't be null."); }

          mContext = context;
          mName = name;
          mFactory = factory;
          mNewVersion = version;
          mErrorHandler = errorHandler;
     }
于 2013-05-19T16:24:22.010 に答える
0

特に Kindle 製品は Android のフォークを実行しているため、もう少しコンテキストを提供できます。

ソースに関しては、tarball のみを見つけることができました。

http://www.amazon.com/gp/help/customer/display.html?nodeId=200203720&tag=viglink121875-20

どのようにして上記のソース コードにたどり着きましたか (リンクしてください)。

コードは、異なるデータベース バージョン間のアップグレードをサポートする準備がまったくできていないことを示しています。

あなたのシナリオでは、バージョン 29 から 27 にアップグレードする必要があります。これはダウングレードです。

于 2013-05-19T16:25:22.220 に答える