无法从资产中读取数据库(Access 2013)(文件已加密或不是数据库)
Unable to read database(Access 2013) from assets (file is encrypted or is not a database)
我从这里阅读了一些信息:
Java - JDBC Driver SQLite 3.7.2 - Unable to open database test.db: file is encrypted or is not a database
不知道 "version mismatch" sqlite3 二进制文件,如果它与 Access
有同样的问题,我该如何解决。
无论如何,我在下面展示了我的部分代码,正如我之前所说的,我不知道它是否是同样的问题:
我创建了一个未使用 Access 2013
加密的外部数据库。
我的文件小于 1MB,在 "/data/data/" + getPackageName() +"/databases/"
.
的 DDMS 上复制得很好
当我从 DDMS 下载到我的计算机时,我可以看到我的所有数据(使用 Access 2013 打开),所以我认为没有损坏。
我的问题是什么时候用
在我的 activity 上调用 db.getBeers()
public void GetBeers(){
db.openDataBase();
Cursor c= db.getBeers();
db.close();
在我的 class DBAdapter extends SQLiteOpenHelper
public Cursor getBeers(){
return myDataBase.query(DATABASE_TABLE, new String[]{KEY_ROWID, KEY_NAME, KEY_VOLUMENFERMENTACION,KEY_AZUCAR,KEY_AGUA, KEY_DINICIAL,KEY_AZUCARBOTELLA,KEY_AZUCARBARRIL,KEY_CATEGORIA},null,null,null,null,null);
}
我的第一个错误 logcat:
E/SQLiteLog(5852): (26) file is encrypted or is not a database.
我希望能对此有所了解,我花了好几个小时,但我不知道出了什么问题,所以欢迎任何帮助。
我从未听说过 Access 是 android 平台的一个选项。
它可能只是一个 Java,但如果你真的想要一个好的离线数据库。
为什么不使用 SQLite?它是 Android 中的一个内置数据库,您可以轻松地连接到它并做任何您想做的事情。既然您正在寻求使用离线数据库,那么相信我,这是最好的选择。
这是一个参考:
https://developer.android.com/guide/topics/data/data-storage.html#db
I created an external database without encryption with Access 2013
SQLite 无法读取 Microsoft Access 数据库。
E/SQLiteLog(5852): (26) file is encrypted or is not a database.
从 SQLite 的角度来看,您的文件不是数据库。
how can I solve it.
请勿尝试将 Access 2013 数据库与 SQLite 一起使用。如果您希望将数据库与您的应用程序打包在一起,并且希望将 Android 的 SQLite 类 与该数据库一起使用,则需要创建一个 SQLite 数据库。
我从这里阅读了一些信息:
Java - JDBC Driver SQLite 3.7.2 - Unable to open database test.db: file is encrypted or is not a database
不知道 "version mismatch" sqlite3 二进制文件,如果它与 Access
有同样的问题,我该如何解决。
无论如何,我在下面展示了我的部分代码,正如我之前所说的,我不知道它是否是同样的问题:
我创建了一个未使用 Access 2013
加密的外部数据库。
我的文件小于 1MB,在 "/data/data/" + getPackageName() +"/databases/"
.
当我从 DDMS 下载到我的计算机时,我可以看到我的所有数据(使用 Access 2013 打开),所以我认为没有损坏。
我的问题是什么时候用
在我的 activity 上调用db.getBeers()
public void GetBeers(){
db.openDataBase();
Cursor c= db.getBeers();
db.close();
在我的 class DBAdapter extends SQLiteOpenHelper
public Cursor getBeers(){
return myDataBase.query(DATABASE_TABLE, new String[]{KEY_ROWID, KEY_NAME, KEY_VOLUMENFERMENTACION,KEY_AZUCAR,KEY_AGUA, KEY_DINICIAL,KEY_AZUCARBOTELLA,KEY_AZUCARBARRIL,KEY_CATEGORIA},null,null,null,null,null);
}
我的第一个错误 logcat:
E/SQLiteLog(5852): (26) file is encrypted or is not a database.
我希望能对此有所了解,我花了好几个小时,但我不知道出了什么问题,所以欢迎任何帮助。
我从未听说过 Access 是 android 平台的一个选项。
它可能只是一个 Java,但如果你真的想要一个好的离线数据库。
为什么不使用 SQLite?它是 Android 中的一个内置数据库,您可以轻松地连接到它并做任何您想做的事情。既然您正在寻求使用离线数据库,那么相信我,这是最好的选择。
这是一个参考:
https://developer.android.com/guide/topics/data/data-storage.html#db
I created an external database without encryption with Access 2013
SQLite 无法读取 Microsoft Access 数据库。
E/SQLiteLog(5852): (26) file is encrypted or is not a database.
从 SQLite 的角度来看,您的文件不是数据库。
how can I solve it.
请勿尝试将 Access 2013 数据库与 SQLite 一起使用。如果您希望将数据库与您的应用程序打包在一起,并且希望将 Android 的 SQLite 类 与该数据库一起使用,则需要创建一个 SQLite 数据库。