This question already has answers here:
Unfortunately MyApp has stopped. How can I solve this?
                                
                                    (19个回答)
                                
                        
                                3年前关闭。
            
                    
这是我的onCreate方法中存在的db类的片段。在此方法上方定义了带有适当参数的构造函数。

因此,在运行该方法时,此方法的运行时日志显示它已执行到run1.2,但没有进一步执行。



public void onCreate(SQLiteDatabase db) {
        try{
          db = getWritableDatabase();
          db.beginTransaction();
          android.util.Log.w("check", "run1.1");
          String query = " CREATE TABLE check ( id INTEGER )";
          android.util.Log.w("check", "run1.2");
          db.execSQL(query, null);
          android.util.Log.w("check", "run1.3");
        }
        catch(Exception e){
            android.util.Log.w("check", e.toString());
        }

    }

最佳答案

删除execSQL调用的第二个参数。这是来自SQLiteDatabase.java的execSQL代码:

public void execSQL(String sql, Object[] bindArgs) throws SQLException {
    if (bindArgs == null) {
        throw new IllegalArgumentException("Empty bindArgs");
    }
    executeSql(sql, bindArgs);
}


仅使用:

db.execSQL(query);

10-08 14:58