你能帮我吗?
我已经在包含数据库的 Google Play 商店上创建并发布了该应用程序,我已经在不同的 Android 手机上对其进行了测试。我的应用程序在 Android 版本(Android 10、8、5 等)上完美运行,但在 Android 9 上除外,你知道我该如何解决这个问题吗?我在华为 Smart Z、荣耀 P20、三星 Y6、小米米上发现了这个问题。Play 商店控制台说我的应用程序可以在该模型上运行。我是应用程序开发的初学者。
这发生在我的Huawei Smart上:当我安装应用程序时,当我想进入数据库时它会打开并崩溃,当我想再次进入应用程序时它会崩溃并在logcat上:
E/Path 1: data/data/com.gema/databases/
E/SQLiteLog: (14) cannot open file at line 36906 of [c255889bd9]
E/SQLiteLog: (14) os_unix.c:36906: (2) open(//data/data/com.gematranslate/databases/gema_recnik.db) -
E/SQLiteDatabase: Failed to open database 'data/data/com.gematranslate/databases/gema_recnik.db'.
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (Sqlite code 14 SQLITE_CANTOPEN): Could not open database, (OS error - 2:No such file or directory)
在android清单中我放了:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
这是我检查数据库的代码:
public boolean checkDataBase() {
SQLiteDatabase checkDB = null;
try {
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN_READONLY);
myContext.getDatabasePath(DB_NAME).getPath();
checkDB.disableWriteAheadLogging();
} catch (SQLException e)
{
//
}
if (checkDB!= null){
checkDB.close();
}
return checkDB != null? true : false;
这是我打开数据库的代码:
public void openDataBase() {
String myPath = DB_PATH + DB_NAME;
myContext.getDatabasePath(DB_NAME).getPath();
db = SQLiteDatabase.openDatabase(myPath,null, SQLiteDatabase.OPEN_READWRITE);
db.disableWriteAheadLogging();
如果有人可以帮助我,非常感谢。