我目前正在完成我的学校作业。我目前在调试我的应用程序时遇到创建 SQLITE 数据库的问题。
日志:
E/SQLiteLog﹕ (14) os_unix.c:30046: (2) open(/data/data/com.asus.microfilm/databases/Sugar.db) -
E/SQLiteDatabase﹕ Failed to open database '/data/data/com.asus.microfilm/databases/Sugar.db'.
我想知道为什么它会打开另一个包数据库。我在网上搜索了一些示例,但找不到任何解决方案,这就是我决定将其发布在这里的原因。
此外,我已经使用了adb-shell,但在我的包中没有发现任何东西。
DatabaseHelper.java
public class DatabaseHelper extends SQLiteOpenHelper
{
public DatabaseHelper(Context context)
{
super(context, context.getExternalFilesDir(null).getAbsolutePath() + "/" + DATABASE_NAME, null, DATABASE_VERSION);
}
tab1.java
DatabaseHelper myDb;
myDb = new DatabaseHelper(getActivity());
我的 tab1.java 是一个 fragment 。
最佳答案
例如我的解决方案
public class NotesDB extends SQLiteOpenHelper {
private static final String DB_NAME = "NotesFile";
private static final String LOG_TAG = "myLogs";
private static final String TABLE_NAME = "Notes";
private static final String COLUMN_KEY = "key";
private static final String COLUMN_NOTE = "note";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_QUESTION = "question";
private String table = "";
public NotesDB(Context context) {
super(context, DB_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(LOG_TAG, "--- onCreate database ---");
db.execSQL("create table "+TABLE_NAME+" ("
+ "id integer primary key autoincrement,"
+ COLUMN_NAME+" text,"
+ COLUMN_KEY+" integer,"
+ COLUMN_QUESTION+" text,"
+ COLUMN_NOTE+" text" + ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
用法
SQLiteDatabase db = new NotesDB(getAppContext()).getWritableDatabase();
c=db.query("Notes", null, selection, selectionArgs , null, null, null );................
关于android - 使用 Android Studio 在设备上创建 sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33648143/