【问题标题】:How to add and open sqllite file in Android application?如何在 Android 应用程序中添加和打开 sqlite 文件?
【发布时间】:2013-12-15 02:10:22
【问题描述】:

我在assets 文件夹中有一个名为plik 的文件。我的 sqlhelper 有一个方法叫databaseExist():

public boolean databaseExist()
{   
    System.out.println(DB_PATH + DB_NAME);
    File dbFile = new File(DB_PATH + DB_NAME);
    return dbFile.exists();
}

我的包名是:

package pl.mobiledietplanner;

路径和名称设置为:

private static String DB_PATH = "/data/data/pl.mobiledietplanner/databases/";
private static String DB_NAME = "plik";

在活动中我调用了这个方法:

MyDBHelper helper = new MyDBHelper(this);       
System.out.println(helper.databaseExist());

结果是:

/data/data/pl.mobiledietplanner/databases/plik
false

我已按照blog 中的说明完成所有操作。
谁能告诉我我做错了什么?

编辑:

我也打开了File Explorerhere,并添加了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />。但是data 文件夹是空的。

【问题讨论】:

    标签: android sql sqlite file-io


    【解决方案1】:

    asserts 文件夹中的文件不在您的 DB_PATH 中,您可以这样做:

    AssetManager am = null;
    ·am = getAssets();
    ·InputStream is = am.open("filename");

    然后判断输入流是否为空

    注意:我的英文不太好,请不要介意

    【讨论】:

      【解决方案2】:

      您为什么不关注您所指博客上的 checkDatabase()?

      private boolean checkDataBase(){
      
        SQLiteDatabase checkDB = null;
      
        try{
          String myPath = DB_PATH + DB_NAME;
          checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
      
        }catch(SQLiteException e){
          //database does't exist yet.
        }
      
        if(checkDB != null){
          checkDB.close();
        }
      
        return checkDB != null ? true : false;
      }
      

      【讨论】:

      • 我做了:sqlite returned: error code = 14, msg = os_unix.c: open() at line 27701 - "" errno=2 path=/data/data/pl.mobiledietplanner/databases/plik, db=/data/data/pl.mobiledietplanner/databases/pliksqlite3_open_v2("/data/data/pl.mobiledietplanner/databases/plik", &handle, 1, NULL) failed
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-07
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 2011-09-18
      • 1970-01-01
      • 2017-09-11
      相关资源
      最近更新 更多