Android SQLite数据库错误

Android SQLite数据库错误,android,android-sqlite,Android,Android Sqlite,我正在尝试创建一个android应用程序,将sms备份到sqlite数据库。我在SQLiteOpenHelper类中创建数据库时遇到错误 以下是主活动中的代码 public class MainActivity extends Activity { SimpleCursorAdapter adapter; private smsDatabase db1; @Override protected void onCreate(Bundle savedInstanc

我正在尝试创建一个android应用程序,将sms备份到sqlite数据库。我在SQLiteOpenHelper类中创建数据库时遇到错误

以下是主活动中的代码

public class MainActivity extends Activity {

    SimpleCursorAdapter adapter;
    private smsDatabase db1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);





    }

    public void Backup(View view) {

        Uri convo = Uri.parse("content://sms");
        String[] reqCol = new String[] {"_id", "thread_id", "address", "person", "date", "body", "type"};
        ContentResolver contentResolver = getContentResolver();
        Cursor c = contentResolver.query(convo, null, null, null, "date asc");
        SMSList<SMS> smsList = new SMSList<SMS>();
        String count = Integer.toString(c.getCount());
        Log.d("Count",count);
        Context ctx = getApplicationContext();
        db1 = new smsDatabase(ctx);
        db1.open();
        while (c.moveToNext()) {
            SMS txt = new SMS();

            long dateLong = c.getLong(c.getColumnIndex("date"));
            Integer id1 = c.getInt(c.getColumnIndex("_id"));
            String body = c.getString(c.getColumnIndex("body"));
            Integer type1 = c.getInt(c.getColumnIndex("type"));
            String address1 = c.getString(c.getColumnIndex("address"));
            String read1 = c.getString(c.getColumnIndex("read"));
            String seen1 = c.getString(c.getColumnIndex("seen"));
            String subject1 = c.getString(c.getColumnIndex("subject"));
            smsList.add(txt);

            db1.insertSMS(txt);

        }
    }
下面是抛出的日志错误

java.lang.IllegalStateException: Could not execute method of the activity
        at android.view.View$1.onClick(View.java:3591)
        at android.view.View.performClick(View.java:4084)
        at android.view.View$PerformClick.run(View.java:16966)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4745)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at android.view.View$1.onClick(View.java:3586)
            at android.view.View.performClick(View.java:4084)
            at android.view.View$PerformClick.run(View.java:16966)
            at android.os.Handler.handleCallback(Handler.java:615)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.IllegalArgumentException: Version must be >= 1, was -994802
        at android.database.sqlite.SQLiteOpenHelper.<init>(SQLiteOpenHelper.java:100)
        at android.database.sqlite.SQLiteOpenHelper.<init>(SQLiteOpenHelper.java:78)
        at com.swavey.testing.smsDatabase$DatabaseHelper.<init>(smsDatabase.java:115)
        at com.swavey.testing.smsDatabase.<init>(smsDatabase.java:82)
        at com.swavey.testing.MainActivity.Backup(MainActivity.java:44)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at android.view.View$1.onClick(View.java:3586)
            at android.view.View.performClick(View.java:4084)
            at android.view.View$PerformClick.run(View.java:16966)
            at android.os.Handler.handleCallback(Handler.java:615)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
java.lang.IllegalStateException:无法执行活动的方法
在android.view.view$1.onClick上(view.java:3591)
在android.view.view.performClick上(view.java:4084)
在android.view.view$PerformClick.run(view.java:16966)
位于android.os.Handler.handleCallback(Handler.java:615)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:4745)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.reflect.InvocationTargetException
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在android.view.view$1.onClick上(view.java:3586)
在android.view.view.performClick上(view.java:4084)
在android.view.view$PerformClick.run(view.java:16966)
位于android.os.Handler.handleCallback(Handler.java:615)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:4745)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.IllegalArgumentException:版本必须大于等于1,was-994802
位于android.database.sqlite.SQLiteOpenHelper.(SQLiteOpenHelper.java:100)
位于android.database.sqlite.SQLiteOpenHelper.(SQLiteOpenHelper.java:78)
位于com.swavey.testing.smsDatabase$DatabaseHelper。(smsDatabase.java:115)
位于com.swavey.testing.smsDatabase(smsDatabase.java:82)
位于com.swavey.testing.MainActivity.Backup(MainActivity.java:44)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在android.view.view$1.onClick上(view.java:3586)
在android.view.view.performClick上(view.java:4084)
在android.view.view$PerformClick.run(view.java:16966)
位于android.os.Handler.handleCallback(Handler.java:615)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:4745)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.IllegalArgumentException:版本必须大于等于1, was-994802


您的数据库版本应该是
静态int
,如1或2(等)。每当您发布应用程序更新且数据库结构因更新而发生更改时,您都可以在此版本号中添加一个,以触发运行
onUpgrade

它表示版本必须>=1。只需将代码替换为“publicstaticfinalintdatabase_VERSION=1”。希望对汉克斯有帮助!修复此问题并删除我的重复列似乎暂时可以修复它。它抛出更多的错误,但这似乎也是一个分配错误,我的错。一旦我有时间修复我的主要活动,以便正确分配短信,我会发表评论,让你知道一切是否正常。
java.lang.IllegalStateException: Could not execute method of the activity
        at android.view.View$1.onClick(View.java:3591)
        at android.view.View.performClick(View.java:4084)
        at android.view.View$PerformClick.run(View.java:16966)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4745)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at android.view.View$1.onClick(View.java:3586)
            at android.view.View.performClick(View.java:4084)
            at android.view.View$PerformClick.run(View.java:16966)
            at android.os.Handler.handleCallback(Handler.java:615)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.IllegalArgumentException: Version must be >= 1, was -994802
        at android.database.sqlite.SQLiteOpenHelper.<init>(SQLiteOpenHelper.java:100)
        at android.database.sqlite.SQLiteOpenHelper.<init>(SQLiteOpenHelper.java:78)
        at com.swavey.testing.smsDatabase$DatabaseHelper.<init>(smsDatabase.java:115)
        at com.swavey.testing.smsDatabase.<init>(smsDatabase.java:82)
        at com.swavey.testing.MainActivity.Backup(MainActivity.java:44)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at android.view.View$1.onClick(View.java:3586)
            at android.view.View.performClick(View.java:4084)
            at android.view.View$PerformClick.run(View.java:16966)
            at android.os.Handler.handleCallback(Handler.java:615)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
public static final int DATABASE_VERSION = (int) new Date().getTime()/1000;