0
Ich habe den folgenden Code:konnte nicht geöffnet Datenbank openOrCreateDatabase
public class UserDataReceiverService extends BroadcastReceiver {
private static UserDataReceiverService instance;
private SQLiteDatabase database;
public UserDataReceiverService() {
instance = this;
database = SQLiteDatabase.openOrCreateDatabase("/data/data/makac.db", null);
database.execSQL("CREATE TABLE IF NOT EXISTS users(username VARCHAR, weight DECIMAL);");
}
...
}
es ist Singletonmuster. Was ich tun möchte, ist offen oder SQLite-Datenbank erstellen, aber ich bekomme immer
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:804)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:789)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
at com.main.makac.receivers.UserDataReceiverService.<init>(UserDataReceiverService.java:25)
at com.main.makac.receivers.UserDataReceiverService.getInstance(UserDataReceiverService.java:50)
at com.main.makac.UserActivity.onCreate(UserActivity.java:41)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
Warum es Datenbank nicht erstellen, wenn es nicht existiert? Ich frage es zu erstellen oder zu öffnen und es versucht nur, es zu öffnen und schlägt fehl.
Ich benutze auch die Erlaubnis, WRITE_EXTERNAL_STORAGE
aber es funktioniert einfach nicht ...