打了一天,程序奔溃

打了一天,程序奔溃

08-01 21:56:36.649 31852-31852/com.ygz.expandablelistviewproj E/AndroidRuntime: FATAL EXCEPTION: main

                                                                                Process: com.ygz.expandablelistviewproj, PID: 31852

                                                                                java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ygz.expandablelistviewproj/com.ygz.expandablelistviewproj.MainActivity}: android.database.sqlite.SQLiteException: AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY (code 1): , while compiling: create table groupData(_idInteger primary key autoincrement,kindtext,typetext)

                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2193)

                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2243)

                                                                                    at android.app.ActivityThread.access$800(ActivityThread.java:135)

                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)

                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102)

                                                                                    at android.os.Looper.loop(Looper.java:136)

                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5019)

                                                                                    at java.lang.reflect.Method.invokeNative(Native Method)

                                                                                    at java.lang.reflect.Method.invoke(Method.java:515)

                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)

                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)

                                                                                    at dalvik.system.NativeStart.main(Native Method)

                                                                                 Caused by: android.database.sqlite.SQLiteException: AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY (code 1): , while compiling: create table groupData(_idInteger primary key autoincrement,kindtext,typetext)

                                                                                    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)

                                                                                    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)

                                                                                    at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)

                                                                                    at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)

                                                                                    at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)

                                                                                    at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)

                                                                                    at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1672)

                                                                                    at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1603)

                                                                                    at com.ygz.expandablelistviewproj.db.DBOpenHelper.onCreate(DBOpenHelper.java:29)

                                                                                    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:252)

                                                                                    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)

                                                                                    at com.ygz.expandablelistviewproj.db.DBWrapper.insertGroup(DBWrapper.java:29)

                                                                                    at com.ygz.expandablelistviewproj.MainActivity.loadDB(MainActivity.java:53)

                                                                                    at com.ygz.expandablelistviewproj.MainActivity.onCreate(MainActivity.java:26)

                                                                                    at android.app.Activity.performCreate(Activity.java:5231)

                                                                                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)

                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157)

                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2243) 

                                                                                    at android.app.ActivityThread.access$800(ActivityThread.java:135) 

                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 

                                                                                    at android.os.Handler.dispatchMessage(Handler.java:102) 

                                                                                    at android.os.Looper.loop(Looper.java:136) 

                                                                                    at android.app.ActivityThread.main(ActivityThread.java:5019) 

                                                                                    at java.lang.reflect.Method.invokeNative(Native Method) 

                                                                                    at java.lang.reflect.Method.invoke(Method.java:515) 

                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 

                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 

                                                                                    at dalvik.system.NativeStart.main(Native Method) 

08-01 21:56:39.039 31852-31852/? I/Process: Sending signal. PID: 31852 SIG: 9

http://img1.sycdn.imooc.com//climg/5b61be100001c1ca13650661.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

http://img1.sycdn.imooc.com//climg/5b62ba4a0001c2f012590138.jpg

sql语句的问题,这些地方你得加个空格呀。例如:" Integer primary key autoincrement,"祝:学习愉快

好帮手慕雪 2018-08-02 09:58:35

DBOpenHelper第29行,看一下sql语句是不是出问题了。autoincrement 自动增长的字段只能是integer 类型的。祝:学习愉快

  • 提问者 Ygz_ #1
    /** * 数据库帮助类 * Created by Administrator on 2018/8/1/001. */ public class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelper(Context context) { super(context, Constant.DB_NAME, null, Constant.DB_VERSION); } /** * group:_id kind type * child:_id coursorName leaner type * * @param db */ @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table " + Constant.TABLE_NAME_GROUP + "(" + Constant.COLUME_GROUP_NAME_ID + "Integer primary key autoincrement," + Constant.COLUME_GROUP_NAME_KIND + "text," + Constant.COLUME_GROUP_NAME_TYPE + "text)"); db.execSQL("create table " + Constant.TABLE_NAME_CHILD + Constant.COLUME_CHILD_NAME_ID+ "Integer primary key autoincrement," + Constant.COLUME_CHILD_NAME_CURSOR + "text," + Constant.COLUME_CHILD_NAME_LEANER + "text," + Constant.COLUME_CHILD_NAME_TYPE + "text)"); }
    2018-08-02 15:31:38
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android网络操作与数据存储2018版
  • 参与学习           人
  • 提交作业       307    份
  • 解答问题       1613    个

本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师