2017-01-02 73 views
0

我製作的G類,以使用數據庫,但在第一個步驟,我得到這個錯誤:無法打開數據庫在Android Studio中

Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database 

而且在AndroidManifest.xml我說:

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

這是我的G類別:

package com.example.n5110.database; 

import android.app.Application; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Environment; 
import java.io.File; 

public class G extends Application { 
    public static Context context; 
    public static SQLiteDatabase database; 
    public static final String DIR_SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath(); 
    public static final String DIR_DATABASE = DIR_SDCARD + "/database-test/"; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     context = this.getApplicationContext(); 

     new File(DIR_DATABASE).mkdirs(); 
     database = SQLiteDatabase.openOrCreateDatabase(DIR_DATABASE + "/database.sqlite", null); 
    } 
} 

有沒有人有一個想法?

+2

如果您是在設備/仿真器API 24或更高的測試,你定義使用[運行權限(https://developer.android.com/training/permissions/requesting的.html)。 –

+1

@Prera​​kSola如果是這種情況,他會得到安全例外。旁註:誰調用G類:D AFAIK如果沒有可用內存,db可能無法打開。至少檢查一下,所以我們可以排除。 – Vucko

+0

我應該如何檢查內存?我是初學者! @Vucko – MarAnd

回答

0

文件dbFile = myContext.getDatabasePath(DB_NAME); return dbFile.exists();

希望它可以幫助

+0

我應該在哪裏添加這些代碼? @Waqas Ahmed – MarAnd

+0

它實際上會幫助你找到你的數據庫文件,得到路徑,然後閱讀它 –

+0

但我有這個錯誤! @Waqas Ahmed – MarAnd