Android 无法使用SQLiteAssetHelper打开数据库

Android 无法使用SQLiteAssetHelper打开数据库,android,sqlite,Android,Sqlite,可能重复: 我使用SQLiteAssetHelper类/库从assets/databases文件夹操作数据库,如图所示。我完全按照指示做了,但还是无法访问数据库 09-27 19:35:46.417: I/Database(27474): sqlite returned: error code = 14, msg = cannot open file at source line 25467 09-27 19:35:46.417: E/Database(27474): sqlite3_open

可能重复:

我使用SQLiteAssetHelper类/库从assets/databases文件夹操作数据库,如图所示。我完全按照指示做了,但还是无法访问数据库

09-27 19:35:46.417: I/Database(27474): sqlite returned: error code = 14, msg = cannot open file at source line 25467
09-27 19:35:46.417: E/Database(27474): sqlite3_open_v2("/data/data/com.gatec.douaa/databases/data", &handle, 2, NULL) failed
09-27 19:35:46.428: W/SQLiteAssetHelper(27474): could not open database data - unable to open database file
09-27 19:35:46.428: W/SQLiteAssetHelper(27474): copying database from assets...
09-27 19:35:46.447: W/SQLiteAssetHelper(27474): extracting file: 'database.db'...
09-27 19:35:46.477: E/SQLiteAssetHelper(27474): Couldn't open data for writing (will try read-only):
09-27 19:35:46.477: E/SQLiteAssetHelper(27474): com.readystatesoftware.sqliteasset.SQLiteAssetException: Missing databases/data.zip file in assets or target folder not writable
代码:



需要帮忙吗?不知道问题的根源。

为什么将.db文件放在.zip中?请尝试将其放入未存档的资产中。或者,您可以尝试在zip存档中放入一点没有问题的.db文件,以了解问题所在。

为什么将.db文件放入.zip?请尝试将其放入未存档的资产中。或者,您也可以尝试将一个没有问题的.db文件放入zip存档中,以了解问题所在。

请发布您的代码。还要确保资产文件夹中有databases/data.zip文件。数据库名称?数据或数据内部的东西folder@ChrisThompson:请参阅编辑后的帖子:。@ChrisThompson:当然,我肯定该文件位于assets/databases/data.ziphow目录下。您创建了数据库数据吗?就像你用sqlite创建的一样…?请发布你的代码。还要确保资产文件夹中有databases/data.zip文件。数据库名称?数据或数据内部的东西folder@ChrisThompson:请参阅编辑后的帖子:。@ChrisThompson:当然,我肯定该文件位于assets/databases/data.ziphow目录下。您创建了数据库数据吗?就像你对sqlite create所做的那样…?sqlite AssetThelper库的开发人员要求用户将db文件放在zip文件中。我理解,请尝试第二种方法来理解问题所在。我检测到了问题。转换的.db文件不正确。转换工具非常差。现在找不到如何将.sql文件转换为.db或sqlite…sqliteAssetThelper库的开发人员要求用户将db文件放在zip文件中。我理解,请尝试第二种方法来理解问题所在。我检测到了问题。转换的.db文件不正确。转换工具非常差。现在找不到如何将.sql文件转换为.db或sqlite。。。
public class MyDatabase extends SQLiteAssetHelper {

    private static final String DATABASE_NAME = "data";
    private static final int DATABASE_VERSION = 1;

    public MyDatabase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);


    }