0

「openOrCreateDatabase」でSQLLiteデータベースを作成したい。問題は、新しいテーブルの作成中にエラーが発生することです。

11-11 12:36:39.865: E/AndroidRuntime(1520): java.lang.IllegalStateException: 
database not open

これは私のコードです:

public class MainActivity extends Activity {

EditText playerName;
Button submitPlayer;
SQLiteDatabase myDB = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_main);

    playerName = (EditText)findViewById(R.id.playerName);
    submitPlayer = (Button)findViewById(R.id.submitPlayer);


        myDB = SQLiteDatabase.openOrCreateDatabase("/data/data/com.my.appname/mydb.db",null);           
  try{          

        myDB.execSQL("CREATE TABLE IF NOT EXISTS player (playername VARCHAR)");         
        myDB.execSQL("INSERT INTO player VALUES('test')");

... ..

マニフェストに2行追加しました。

<permission-group android:name = "android.permission-group.STORAGE">

<uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" />

どうしたの ?

どうもありがとう !

4

1 に答える 1

2

このようにデータベースにアクセスするべきではありません。また、sdcard用の/ data/dataのストレージ権限も必要ありません。あなたがすべきことは、SQLiteOpenHelperを使用してデータベースを管理することです。これがあなたが始めるためのチュートリアルです

于 2012-11-11T12:49:06.607 に答える