2017-01-04 18 views
-2

'/storage/emulated/0/databases/mydb.db'にデータベースファイルを作成するアプリケーションがあり、このDB内にファイルがあります。 このデータベースを開こうとする別のアプリケーションがあります。しかし、私はエラーコード14を取得します。このdbのテーブルをoprnしようとすると、データベースを開くことができませんでした。データベースファイルを開くことができません

public class DataBaseHelper extends SQLiteOpenHelper { 

public SQLiteDatabase myDataBase; 
public String TABLE_NAME; 
// Database Information 
static final String DB_NAME = "mydb.DB"; 
public static final String FILE_DIR = "databases"; 
private String DB_PATH = Environment.getExternalStorageDirectory() 
     + File.separator + FILE_DIR + File.separator + DB_NAME; 

public DataBaseHelper(Context context, String name) { 
    super(context, name, null, 1); 
    TABLE_NAME = name; 
} 

public void openDatabase() throws SQLiteException { 
    String DBPath = DB_PATH + "/" +TABLE_NAME; 
    myDataBase = SQLiteDatabase.openDatabase(DBPath,null,SQLiteDatabase.OPEN_READWRITE); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 

} 

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

} 

私はmyDataBase = SQLiteDatabase.openDatabase(DBPath,null,SQLiteDatabase.OPEN_READWRITE);

+1

が作成したファイルのパーミッションをチェックしましたか? 2つの異なるアプリは、常に2人の異なるLinuxユーザーです。 –

+0

私は根ざした電話を使用していません。そのためデフォルトの権限。 –

+0

ContentProviderを作成するか、両方のアプリケーションからアクセス可能なフォルダにデータベースを配置することで、データベースを共有できます(インストールされているすべてのアプリにも潜在的に)。 –

答えて

0

1.許可

アプリのニーズファイルでエラーを取得するには、許可をお読みください。 Android 6.0以上では、実行時の許可を要求する必要があります。

これを参照してください:android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database


2.間違ったパス

に思えるパスその

/storage/emulated/0/databases/mydb.db

は以下のパスと同じではありません。

Environment.getExternalStorageDirectory() + File.separator + FILE_DIR + File.separator + DB_NAME

ので、開いているデータベースファイルの前に、それをチェックするために2つのパスを比較することは同じです。

if (DB_PATH.compareTo("/storage/emulated/0/databases/mydb.db")){ 
    // Do something 
} 

実際に存在するかどうかを確認してください。

File file = new File(myPath);  
if (file.exists() && !file.isDirectory()) { 
    // Do something 
} 

詳細:android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database trouble

関連する問題