私は研究を全面的に行いました。ヘルパーのコンストラクタにOpenOrCreateDatabase
を追加しても機能しませんでした。マニフェストのパーミッションを追加することもできませんでした。私もアプリを再インストールしようとしました。 は、ここに私のヘルパークラスがあります:Android:Sqliteデータベースを開くことができません
public class UserGameData extends SQLiteOpenHelper {
SQLiteDatabase db;
public static final String DB_NAME ="userdata.db";
public static final int DB_VER = 1;
public UserGameData(Context context) {
super(context,DB_NAME, null,DB_VER);
int i =0; // the error is this line for some reason??
context.openOrCreateDatabase(DB_NAME,DB_VER,null);
}
@Override
public void onCreate(SQLiteDatabase db) {
String create = ("CREATE TABLE IF NOT EXISTS GameData (Character TEXT NOT NULL,Unlocked BOOLEAN NOT NULL DEFAULT 0, IntroVn BOOLEAN NOT NULL DEFAULT false, EndVn BOOLEAN NOT NULL DEFAULT false,HighScore int not null DEFAULT 0,Unlocks text not null DEFAULT yellow,UnlockCondition INTEGER NOT NULL DEFAULT 50, PRIMARY KEY (Character))");
db.execSQL(create);
init();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
ここで私はまた、パスをハードコーディング
public static final String DB_NAME ="/data/data/com.example.reimu.buttonchange/databases/userdata.db3userdata.db";
を試みたヘルパー
public class Select extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select);
UserGameData db= new UserGameData(this); //error occurred here
}
}
を使用してアクティビティエラー
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.reimu.buttonchange, PID: 21383
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.reimu.buttonchange/com.example.reimu.buttonchange.Select}: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2464)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: 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:213)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:197)
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:806)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
at com.example.reimu.buttonchange.UserGameData.<init>(UserGameData.java:23)
at com.example.reimu.buttonchange.Select.onCreate(Select.java:37)
at android.app.Activity.performCreate(Activity.java:6285)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2524)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1391)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:224)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
です
ヘルプはrです
なぜあなたは 'userdata.db3userdata.db'にアクセスしようとしていますか?あなたのdb名は 'userdata.db'です –