Eclipse + ADT を使用して sqlite db を読み書きするアプリを作成しました。Android 端末エミュレーターでは正常に動作しますが、電話自体から実行すると、db からスピナーが読み込まれません。つまり、見つからないことを意味します。内部メモリに db がある場合、db が電話上にあり、そこにあるかどうかを adb shell で既に確認したので、db を使用できるようにアプリにルート権限を与える必要があると思いますが、どうすればこれを行うことができますか? 私の電話は Motorola Defy で、ルート化されています。
編集:これは、テーブルを作成するための私のクラスであり、メソッド onCreate および onUpdate を追加します。
public class passwordSQLiteHelper extends SQLiteOpenHelper{
String SqlCreate = "CREATE TABLE password(id INTEGER, name TEXT, password TEXT)";
public passwordSQLiteHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(SqlCreate);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS password");
db.execSQL(SqlCreate);
}
}
そして、アクティビティの開始時にメイン クラスから呼び出しています。
passwordSQLiteHelper passUserDb = new passwordSQLiteHelper(this, "/data/data/com.project.otto/databases/password", null, 1);
端末では問題なく動作しますが、データベースが見つからないように見える電話では機能しません。adbで確認したところ、そこにありました。助けてください、ありがとう!