我已经使用CN1编写了一个访问sqlite数据库的应用程序。当我使用Netbeans在模拟器中运行应用程序时,它工作得非常好。然而,当我试图连接到实际设备上的db时,我得到了这个错误。。。
java,lang,NullPointerException: Attempt to invoke virtual method 'void.com.codename1.db.Database.close()' on a null object reference
在我创建DB实例之前,我已经通过我的代码尝试查看我是否正在执行“关闭”操作,但我看不到它-如果我正在执行此操作,那么我希望它在模拟器中失败,对吗?
谢谢你的帮助
谢啦
在YouTube教程之后,我使用“adb”命令找到了问题的原因:https://www.youtube.com/watch?v=3wMlCucwGvE
当我按照这些说明操作时,我可以看到以下输出
10-27 08:14:12.580 3967 3986 E SQLiteDatabase: Failed to open database '/databases/MyDB.db'.
10-27 08:14:12.580 3967 3986 E SQLiteDatabase: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 1294): Could not open database
10-27 08:14:12.580 3967 3986 E SQLiteDatabase: #################################################################
10-27 08:14:12.580 3967 3986 E SQLiteDatabase: Error Code : 1294 (SQLITE_CANTOPEN_ENOENT)
10-27 08:14:12.580 3967 3986 E SQLiteDatabase: Caused By : Specified directory or database file does not exist.
10-27 08:14:12.580 3967 3986 E SQLiteDatabase: (unknown error (code 1294): Could not open database)
10-27 08:14:12.580 3967 3986 E SQLiteDatabase: #################################################################
因此,这个输出和我最初的错误消息一起告诉我,我试图在打开数据库之前关闭它。
所以这在我心中引发了两个问题:
1] 为什么它能在模拟器中完美工作?
2]在尝试关闭数据库之前,是否需要检查数据库是否打开?
在代码中,您可以执行以下操作:
dbPath = Display.getInstance().getDatabasePath("MyDB.db");
if(dbPath != null && !FileSystemStorage.getInstance().exists(dbPath)) {
copyDb(dbPath);
}
}
然后你会:
db = Display.getInstance().openOrCreate(dbPath);
这是一个错误,我有点惊讶这在模拟器中工作。您需要使用:
db = Display.getInstance().openOrCreate("MyDB.db");
原始答复如下:
如果您用电缆连接Android设备并查看DDM,您应该能够看到错误的完整堆栈跟踪,该跟踪将指向失败的特定代码行。
请注意,在这种情况下,无需安装DDMS或电缆,也可以使用碰撞保护。
我正在使用SQLiteHelper创建一个数据库,当应用程序尝试运行时,我不断收到异常。 这是我收到的错误消息:引起原因:android.database.sqlite.SQLiteExcture:附近"Trip":语法错误(代码1):,而编译:创建表商务旅行支出(desc文本主键,餐整数不为空,饮料整数不为空,旅行整数不为空,住宿整数不为空,其他整数不为空,Receipt_Retained?Re
我正在为我的公司调查可能的跨平台解决方案,我现在正在尝试代号为One的解决方案。我真的很喜欢它,但今天我创建了一个hello world项目,当我尝试构建服务器时,我得到了一个错误。我还尝试了iOS版本,我得到了同样的错误。下面是我得到的异常: 这是我在build.xmlAndroid设置: 我认为这可能是不相关的,因为它是一个我不关心的构建,并且可能不会被解析,但在我的windows部分buil
我试图在codenameone中构建一个示例,当我试图生成ios构建时,我在codenameone构建服务器下的构建中得到了像"构建错误"这样的错误。 这是我得到的错误日志 如果有人对此有想法,请帮助我... 对不起,我的英语很差。。 提前谢谢。。
我遇到了一个奇怪的问题。我正在查询数据库表中的单词列表,并能够获得该列表。但是我无法更新该表。奇怪的是,logcat显示Code 14错误。我卸载了应用程序,重新运行它,所以数据库是新复制的,但是什么都没有改变。 以下是dbHandler代码: } 这是服务代码: 字符串兽医显示在烤面包中,我可以看到表格第一列中的所有单词。但是我无法更新行。 我已经给了它存储权限,并对其进行了双重检查。 清单文件
当试图通过Sonarqube连接到LDAP时,我遇到了以下错误: 2016.09.13 09:35:16调试Web[O.S.P.L.LDAPUsersProvider]用户sonartester在2016年找不到。09.13 09:35:16错误Web[O.S.S.A.RealMauthEnticator]身份验证过程中错误org.sonar.api.utils.SonareXception:无法
我有一个基本的Codename One订阅,从我的角度来看,我的代码编译得很好,模拟器也工作得很好,但是Codename One Server正在获得构建错误,我尝试了几次但仍然不工作,有构建错误日志,但在这里发布太长了,我该怎么办?