2016-11-13 2 views
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 ...

Antwort

0

Ich sollte /data/data/makac.main.com/makac.db

/data/data/package_name/makac.db so in meinem Fall verwendet haben
Verwandte Themen