Android:构建时无法设置Locale(),正在关闭数据库

Android:构建时无法设置Locale(),正在关闭数据库,android,sqlite,Android,Sqlite,我正在尝试创建一个包含12个不同表的数据库,直到今天为止,该数据库一直运行良好。现在,每次我卸载并重新安装应用程序(或只是清除应用程序数据)后第一次启动应用程序时,我都会收到标题中显示的错误消息。然而,在我第二次启动应用程序后,得到这个错误,它的工作正常。 下面的代码来自我的DatabaseHelper类,它或多或少与android记事本教程相同 在我的活动中打开数据库并尝试进行第一次查询后,出现此错误 有什么建议可以导致这种情况以及如何解决 private static class Datab

我正在尝试创建一个包含12个不同表的数据库,直到今天为止,该数据库一直运行良好。现在,每次我卸载并重新安装应用程序(或只是清除应用程序数据)后第一次启动应用程序时,我都会收到标题中显示的错误消息。然而,在我第二次启动应用程序后,得到这个错误,它的工作正常。 下面的代码来自我的DatabaseHelper类,它或多或少与android记事本教程相同

在我的活动中打开数据库并尝试进行第一次查询后,出现此错误

有什么建议可以导致这种情况以及如何解决

private static class DatabaseHelper extends SQLiteOpenHelper {

    private static String DB_PATH = "/data/data/my_app/databases/";

    DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        if (!checkDataBase()) {
            db.execSQL(TABLE_1);
            db.execSQL(TABLE_2);
            db.execSQL(TABLE_3);

            db.execSQL(TABLE_4);
            db.execSQL(TABLE_5);
            db.execSQL(TABLE_6);

            db.execSQL(TABLE_7);
            db.execSQL(TABLE_8);
            db.execSQL(TABLE_9);

            db.execSQL(TABLE_10);
            db.execSQL(TABLE_11);
            db.execSQL(TABLE_12);
        }
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data");
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_1);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_2);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_3);

        db.execSQL("DROP TABLE IF EXISTS " + TABLE_4);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_5);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_6);

        db.execSQL("DROP TABLE IF EXISTS " + TABLE_7);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_8);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_9);

        db.execSQL("DROP TABLE IF EXISTS " + TABLE_10);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_11);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_12);
        onCreate(db);
    }

    private boolean checkDataBase() {
        SQLiteDatabase checkDB = null;
        try {
            checkDB = SQLiteDatabase.openDatabase(DB_PATH + DATABASE_NAME, null, SQLiteDatabase.OPEN_READONLY);
            checkDB.close();
        } catch (SQLiteException e) {

        }
        return checkDB != null ? true : false;
    }
}

问题是,您的数据库可能不包含与Android相关的元数据


调用
SQLiteDatabase.openDatabase()。至少它对我有用。

也许可以试试这个答案。这对我有用。SQLiteDatabase.NO_本地化的| SQLiteDatabase.OPEN_READWRITE