【发布时间】:2015-10-05 20:24:44
【问题描述】:
我正在创建一个需要登录的应用程序。我创建了主活动和登录活动。所以当我插入用户名和密码时,它应该保存到数据库中。 我在安装应用程序时遇到这些错误。
10-05 23:12:18.959 18728-18728/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-05 23:12:18.959 18728-18728/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-05 23:16:45.809 18970-18970/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-05 23:16:45.809 18970-18970/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-05 23:26:21.659 31040-31040/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-05 23:26:21.659 31040-31040/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-05 23:28:34.489 31330-31330/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-05 23:28:34.489 31330-31330/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-05 23:45:53.309 31935-31935/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-05 23:45:53.309 31935-31935/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-05 23:48:01.659 32267-32267/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-05 23:48:01.659 32267-32267/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-05 23:56:57.979 32571-32571/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:24)
10-05 23:56:57.979 32571-32571/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:33)
10-05 23:58:57.249 451-451/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-05 23:58:57.249 451-451/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-06 00:02:41.189 898-898/com.example.shoaib.myapplication E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-06 00:02:41.189 898-898/com.example.shoaib.myapplication E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-06 00:04:54.439 1175-1175/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-06 00:04:54.439 1175-1175/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-06 00:05:57.279 1426-1426/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-06 00:05:57.279 1426-1426/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
10-06 00:07:16.629 1733-1733/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.onCreate(DatabaseOperations.java:23)
10-06 00:07:16.629 1733-1733/? E/AndroidRuntime: at com.example.shoaib.myapplication.DatabaseOperations.PutInformation(DatabaseOperations.java:32)
这个是DatabaseOperations.java文件
package com.example.shoaib.myapplication;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* Created by shoaib on 10/5/2015.
*/
public class DatabaseOperations extends SQLiteOpenHelper{
public static final int database_version=1;
public String CREATE_QUERY="CREATE TABLE "+tableData.tableInfo.TABLE_NAME+"("+tableData.tableInfo.USER_NAME+" TEXT, "+tableData.tableInfo.USER_PASS+" TEXT, );";
public DatabaseOperations(Context context) {
super(context, tableData.tableInfo.DATABASE_NAME, null, database_version);
Log.d("Database Operations","Database Created");
}
@Override
public void onCreate(SQLiteDatabase sdb) {
sdb.execSQL(CREATE_QUERY);
Log.d("Database Operations", "Table Created");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void PutInformation(DatabaseOperations dop,String name,String pass){
SQLiteDatabase SQ=dop.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put(tableData.tableInfo.USER_NAME,name);
cv.put(tableData.tableInfo.USER_PASS, pass);
long k=SQ.insert(tableData.tableInfo.TABLE_NAME,null,cv);
Log.d("Database Operations","one row inserted");
}
}
【问题讨论】:
-
实际的例外情况不在您的帖子中。我相信异常输出的某些部分丢失了。顺便说一句,您似乎没有从 PutInformation 调用 onCreate。所以我认为你不应该从这段代码中得到这样的异常
-
那么我必须做出哪些改变?
-
@Adem 你的意思是说我没有调用 onCreate() 方法,但它会自动执行,因此不需要从 PutInformation() 调用它。
-
如何保存“姓名”和“通行证”。请发布您如何创建 DatabaseOperations 以及如何调用 PutInformation
-
您的异常似乎不完整。所以,我不明白出了什么问题。可能的原因,您可能会尝试多次打开同一个数据库。例如,您是否创建多个 DatabaseOperations 实例?不关闭上一个
标签: android