- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有以下 DBAdapter(这不是全部,但它是相关代码)。
private final String DATABASE_NAME = "seller";
private final String DATABASE_MY_TABLE = "sellertable";
private final Integer DATABASE_VERSION = 1
private final String CREATE_TABLE = "CREATE TABLE seller ........";
public DBAdapter( Context c )
{
this.context = c;
DBHelper = new DatabaseHelper(context);
}
private static class DatabaseHelper extends SQLiteOpenHelper
{
public DatabaseHelper( Context context )
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate( SQLiteDatabase db )
{
MyLog.d("Creating Tables");
try
{
db.execSQL(CREATE_TABLE);
}
catch (Exception e)
{
e.printStackTrace();
}
}
@Override
public void onUpgrade( SQLiteDatabase db, int oldVersion, int newVersion )
{
MyLog.w("Upgrading database from version " + oldVersion + " to " + newVersion + ". Destroying old data.");
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_MY_TABLE);
onCreate(db);
}
}
// Opens the database
public DBAdapter open() throws SQLException
{
db = DBHelper.getWritableDatabase();
return this;
}
当我尝试 db.open()
时,我得到以下信息:
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate application com.company.app.MyApp: java.lang.NullPointerException
at android.app.LoadedApk.makeApplication(LoadedApk.java:466)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3260)
at android.app.ActivityThread.access$2200(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
at com.company.app.DBAdapter.open(DBAdapter.java:74)
at com.company.app.MyApp.<init>(MyApp.java:106)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newApplication(Instrumentation.java:957)
at android.app.Instrumentation.newApplication(Instrumentation.java:942)
at android.app.LoadedApk.makeApplication(LoadedApk.java:461)
它似乎遇到了某种异常,与助手决定是否创建或更新数据库的时间有关...
最佳答案
我刚遇到这个,可能是出于不同的原因。在调用 onCreate() 之前,我尝试做一些涉及上下文的与数据库相关的事情。希望这可以帮助那里的人
关于Android SQLite - openOrCreateDatabase() nullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957991/
我注意到当我右键单击该项目并选择“作为 Android 应用程序运行”时,openOrCreateDatabase 只能在模拟器中使用,而不能在手机中使用。我已经检查了 DDMS,数据库是通过模拟器成
我有我的 DAO 类,当我调用我的类 conexao 时,该方法返回 null,但为什么? public void criarBanco() { Conexao conexao = n
我需要帮助。我有一个带有自定义适配器的 ListView,在这个 ListView 中我有一个 CheckBox 并且在 onClick 方法中应该更新我的数据库中的一个表。我的 CheckBox 的
我在打开数据库时在我的 EhActivity 类中遇到 NullPointerException public class EHActivity extends Activity { ArrayLi
我有以下 DBAdapter(这不是全部,但它是相关代码)。 private final String DATABASE_NAME = "seller"; private final String D
知道如何更新使用 openorcreatedatabase 创建的 sqlite 数据库。问题是该应用程序已经在市场上发布。新版本的应用程序向数据库添加了字段。 我试过这个方法 package com
我正在尝试访问数组适配器内的数据库以从列表中删除项目。但代码无法解析 openOrCreateDatabase 方法或符号 MODE_PRIVATE。 我的代码: public class worko
我创建了一个带有服务的程序 - 该服务是“START_STICKY”。因此,当我关闭程序(我正在使用 Advanced Task Killer 来终止程序)时,服务会自动重新启动,但这会出现问题,因为
当我打电话 myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null); 数据库文件是在哪里创建的? 我到处都找不到。 o
Android 在两个不同的类中有 openOrCreateDatabase:SQLiteDatabase和 Context .请问它们有什么区别? 与此同时,我正在使用单例类来维护我的数据库。如果我
我正在尝试按如下方式打开数据库: SQLiteDatabase myDatabase; myDatabase = openOrCreateDatabase("sudoku.db", Context.M
我正在制作一个使用数据库的新 Android 应用程序。我使用类似的代码来创建和复制数据库,但由于某种原因它不起作用。想不通,求助日志猫: 07-03 21:38:54.260: E/AndroidR
我正在尝试学习 sqlite for android。我创建了一个 Helper 类,它应该打开我的数据库并执行任何帮助类所做的事情。 我的问题是由于这个错误我什至无法打开数据库: android.d
我收到此日志警告消息(在运行 stock 4.4 的 Nexus 4 上): Failed to chmod(/storage/emulated/0/Android/data/com.myapp/my
我是一名优秀的程序员,十分优秀!