簡體   English   中英

使用SQLiteAssetHelper類時發生異常

[英]Exception while using SQLiteAssetHelper class

我正在嘗試使用SQLiteAssetHelper將預先填充的數據庫復制到android應用中。 我的設備(Nvidia Shield和Motorola Phone)上裝有Android-7。 從設置->應用程序-> MyApp我啟用了日歷位置存儲權限

我在清單文件中也具有以下權限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

當我將數據庫保留在assets/databases/databases文件夾中時,出現以下異常:

引起原因:com.readystatesoftware.sqliteasset.SQLiteAssetHelper $ SQLiteAssetException:無法將/data/user/0/com.funcheap.funmapsf/databases/databases/MySFfuncheapDatabase.db寫入數據

當我將數據庫保留在assets/databases文件夾中時,出現以下異常:

引起原因:com.readystatesoftware.sqliteasset.SQLiteAssetHelper $ SQLiteAssetException:資產或目標文件夾中的數據庫/數據庫/MySFfuncheapDatabase.db文件(或.zip,.gz歸檔文件)不可寫

不幸的是,這個問題對我沒有幫助

正如@miket所說的,如果您引用內部路徑,Android將使用該引用,我遇到了這個問題,這是我非常草率的測試代碼。

public void getINTERNAL(){
    Context context = this;
    File file = new File(context.getFilesDir().getAbsolutePath());
    String NT = String.valueOf(file);
    THE_PATH = NT+"/";
    System.out.println("INTERNAL PATH =========> "+THE_PATH);
}


public void getAvailable(){

    //getINTERNAL();

    String state = Environment.getExternalStorageState();

    if (state.equals(Environment.MEDIA_MOUNTED) && (!state.equals(Environment.MEDIA_MOUNTED_READ_ONLY))) {

        File removable = ContextCompat.getExternalFilesDirs(this, null)[1];
        THE_PATH = String.valueOf(removable);
        if(THE_PATH.length() > 4) {
            //THE_PATH = THE_PATH.substring(0, THE_PATH.length() - 5);
            THE_PATH = THE_PATH + "/Documents/";
            System.out.println("new path ====> "+THE_PATH);
        }
        System.out.println("EXTERNAL PATH ====> " + THE_PATH);
        System.out.println("Internal Path used if EXTERNAL PATH = NULL ");
        //getINTERNAL(); DO NOT CALL HERE YOU WILL CHANGE THE_PATH TO internal
        // no need to set THE_PATH for internal storage it will default on its own
        // WHY DOES THIS HAPPEN THE_PATH variable is PUBLIC STATIC hence it is GLOBAL
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM