我想创建一个非常简单的应用程序与三个字段和数据应保存在SQLite数据库。当我运行的应用程序未创建SQLite数据库
我得到错误信息
"Error running app: Instant Run requires "Tools..Android..Enable ADB integration" to be enabled
.. 我做了亚行的整合从菜单中,但每次我运行应用程序时,显示此错误。我是否需要始终手动选择此选项?当我按下应用程序中的按钮来保存数据时,应用程序停止运行。我试图检查Android设备监视器上的数据库,但未创建数据文件夹。我发现在这个论坛上一些相关的帮助,我已经做了建议的配置(见下图):
亚行外壳 苏 搭配chmod 777个/data/data/com.example.application.sqliteappl 启动CMD再次.. adb根 adb root -restart
(我的软件包名称是:com.example.application.sqliteappl)。
我假设我的应用程序停止运行,因为它无法创建SQLite数据库。 任何人有一个想法如何解决这个问题?
在我的应用程序的代码是很简单的,我不认为有任何问题:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = "MyMessage";
public static final String DATABASE_NAME = "Student.db";
public static final String TABLE_NAME = "Student_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "Name";
public static final String COL_3 = "SURNAME";
public static final String COL_4 = "MARKS";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
// SQLiteDatabase db = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SURNAME TEXT, MARKS INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABKE IF EXITS "+TABLE_NAME);
onCreate(db);
Log.i(TAG, "onUpgrade()");
}
public boolean insertData(String name, String surname, String marks){
Log.i(TAG, "insertData()");
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contevalues = new ContentValues();
contevalues.put(COL_2, name);
contevalues.put(COL_3, surname);
contevalues.put(COL_4, marks);
long result = db.insert(TABLE_NAME, null, contevalues);
if (result == -1)
return false;
else
return true;
}
}
感谢大家看着它。
问候,
塔里克
你尝试过禁用即时运行 – Arshad
尝试无效缓存,并重启Android Studio中 – UltimateDevil
有你'进入阅读和'manifest' –