java - 我正在创建一个 android 项目,它将保存用户的用户名和密码,在设备上运行应用程序时出现错误
问题描述
06-12 18:20:51.794 17318-17379/zaphlabs.com.knotty E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
Process: zaphlabs.com.knotty, PID: 17318
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: android.database.sqlite.SQLiteException: no such column: username (code 1): , while compiling: SELECT _id, username, password FROM knot
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316)
at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1163)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1034)
at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1202)
at zaphlabs.com.knotty.database.KnotProvider.query(KnotProvider.java:55)
at android.content.ContentProvider.query(ContentProvider.java:1027)
at android.content.ContentProvider$Transport.query(ContentProvider.java:238)
at android.content.ContentResolver.query(ContentResolver.java:502)
at android.content.CursorLoader.loadInBackground(CursorLoader.java:64)
at android.content.CursorLoader.loadInBackground(CursorLoader.java:42)
at `enter code here`android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:312)
at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:69)
at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:57)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
请帮助我。很长一段时间以来我都遇到了错误并且无法解决以下问题是我的完整代码,您可能会看到它来帮助我。
解决方案
根据 stcak 跟踪,表“结”中不存在“用户名”列。我希望 create table 语句由于语法错误(缺少空格)而失败。
试试下面的创建语句,(确保您卸载并再次安装应用程序以检查,因为更新时未调用创建表查询)
String CREATE_KNOT_PET_TABLE_ENTRIES="CREATE TABLE "+ KnotContract.KnotEntry.TABLE_NAME+ " ("+
_ID +" INTEGER PRIMARY KEY AUTOINCREMENT, "+
COLUMN_USERNAME+" TEXT NOT NULL,"+
COLUMN_PASSWORD+" TEXT );";
推荐阅读
- c - 为什么我的父进程在 exec() 之后也会崩溃?
- sql - SQL如何从上个月的group by中获取一个值以在当前group by中使用?
- javascript - 如何在不按“推文”的情况下发推文
- javascript - 根据 json 值创建复选框
- javascript - 加载删除以前的 PHP 脚本
- ios - 如果我打开了位置服务,那么我的应用程序在进入后台模式时如何被杀死?
- c - 我如何找到 igraph 的 shortest_paths 的底层 C 代码?
- c - c中变量机制的范围
- android - 依赖项是最新的,但 Gradle 认为不是
- angular6 - FormArray 得到 ExpressionChangedAfterItHasBeenCheckedError