2017-09-16 196 views
2

我想创建一个非常简单的应用程序与三个字段和数据应保存在SQLite数据库。当我运行的应用程序未创建SQLite数据库

  1. 我得到错误信息"Error running app: Instant Run requires "Tools..Android..Enable ADB integration" to be enabled .. 我做了亚行的整合从菜单中,但每次我运行应用程序时,显示此错误。我是否需要始终手动选择此选项?

  2. 当我按下应用程序中的按钮来保存数据时,应用程序停止运行。我试图检查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; 
    } 
} 

感谢大家看着它。

问候,

塔里克

+0

你尝试过禁用即时运行 – Arshad

+0

尝试无效缓存,并重启Android Studio中 – UltimateDevil

+0

有你'进入阅读和'manifest' –

回答

0

决心即时运行错误,请参考和尝试实现像this后,我希望这将有助于。

+0

究竟应该以什么方式帮助这种方式?当我检查我的代码(上面列出)时,它不显示任何语法问题。任何其他提示? – Tariq