Điều này có thể hơi muộn, nhưng hy vọng điều này sẽ giúp ích cho những ai gặp phải vấn đề này (vì tôi không thể tìm ra giải pháp dứt điểm).
Tôi nghĩ rằng tôi biết lý do của nguyên nhân này (ít nhất là đối với trường hợp của tôi). Tìm kiếm trong DDMS -> File Explorer , bạn sẽ nhận ra rằng Thư mục cơ sở dữ liệu (/ data / data // databases /) không tồn tại, đó là lý do tại sao ứng dụng không thể tạo tệp cơ sở dữ liệu trong thư mục không tồn tại đó. Nếu bạn có thể tạo một thư mục cơ sở dữ liệu theo một cách nào đó, bạn có thể tránh được sự cố này.
Vì lười nên tôi chỉ sử dụng / data / data // files / folder khi tôi ở chế độ Trình giả lập. Bạn có thể lấy các tệp bằng cách sử dụng sau:
context.getFilesDir().getPath()
Điều này hoạt động hiệu quả đối với tôi trong Trình giả lập.
Hy vọng điều này sẽ giúp ai đó.
Trong trường hợp bạn muốn xem một số mã:
String dbFilename = "example.db";
try
{
File databaseFile = getDatabasePath(dbFilename);
SQLiteDatabase _db = SQLiteDatabase.openOrCreateDatabase(databaseFile);
} catch (Exception e)
{
String databasePath = getFilesDir().getPath() + "/" + dbFilename;
File databaseFile = new File(databasePath);
_db = SQLiteDatabase.openOrCreateDatabase(databaseFile);
}
CHỈNH SỬA:Tôi đã thử đăng nhập vào Facebook (ứng dụng của tôi có tích hợp FB) trên thư mục Emulator và / cơ sở dữ liệu xuất hiện sau đó (và vẫn tồn tại). Không chắc điều gì đã xảy ra, nhưng có thể tạo thư mục đó bằng cách nào đó. Một điều gì đó để một chuyên gia khác ở đây làm sáng tỏ.