我想創建一個非常簡單的應用程序與三個字段和數據應保存在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' –