无法在Android Studio

时间:2017-08-17 17:10:34

标签: android android-studio android-sqlite

我正在尝试在Androis Studio 2.3中为我的应用程序创建一个SQLite数据库。

我尝试了以下内容 -

方法-1:创建了一个从SQLiteOpenHelper延伸并覆盖OnCreate

的类
public AppDB(Context context){
    super(context, DBName, null, 1);
    SQLiteDatabase db = this.getWritableDatabase();
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TableName + " (RecordingID TEXT PRIMARY KEY,RecordItemName TEXT,RecordFilePath TEXT,RecordFileDate TEXT)");
}

方法-2:尝试在我的主要活动OnCreate

中添加这两行
SQLiteDatabase db = openOrCreateDatabase("AppDB.db", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS Recordings (RecordingID TEXT PRIMARY KEY,RecordItemName TEXT,RecordFilePath TEXT,RecordFileDate TEXT)");

我的应用在模拟器上启动正常。当我尝试使用Android设备监视器验证创建的数据库时>文件管理器,我无法在 data 文件夹下看到我的数据库。 enter image description here 我是Android新手,无法弄清楚我做错了什么。请告诉我是否可以添加更多详细信息。

3 个答案:

答案 0 :(得分:1)

由于Marshmallow之后的权限问题,您必须创建一个23或更低的AVD目标,然后会出现数据。 另一种方法是在canary频道上将SDK更新到3.0版beta 2,虽然它不稳定但是这个问题已经解决,你可以在更高的Apis上访问db。

答案 1 :(得分:0)

您在创建查询中错过了分号。

db.execSQL("CREATE TABLE " + TableName + " (RecordingID TEXT PRIMARY KEY,RecordItemName TEXT,RecordFilePath TEXT,RecordFileDate TEXT);");

答案 2 :(得分:0)

您可以像这样创建数据库,以便我们可以在安装应用程序时创建数据库。

public class DataBaseHelp extends SQLiteOpenHelper {

    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "studentinfo.db";
    public static final String TABLE_NAME = "student";
    public static final String STUDENT_ID = "id";
    public static final String STUDENT_NAME = "name";
    public static final String STUDENT_ENROLLMENT_NO = "number";
    public static final String STUDENT_CONTACT = "contact_number";


    private String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_NAME + "("
            + STUDENT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + STUDENT_NAME + " TEXT,"
            + STUDENT_ENROLLMENT_NO + " TEXT," + STUDENT_CONTACT + " TEXT" + ")";



    public DataBaseHelp(Context context) {
        super(context,DATABASE_NAME,null,DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL(CREATE_USER_TABLE);

    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        sqLiteDatabase.execSQL("DROP TABLE OF EXISTS "+TABLE_NAME);
        onCreate(sqLiteDatabase);
    }
}

Go to device file explorer

data --> data --> [select your package name] --> databases