- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的应用程序中,我的 Assets 文件夹中有一个 SQLite 数据库的副本。据我所知,它工作正常。当我的应用程序第一次在我的模拟器中安装时,我收到如下错误:
Failed to open the database. Closing it.
android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file
E/SQLiteDatabase(7516): at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
E/SQLiteDatabase(29308): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1013)
E/SQLiteDatabase(29308): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986)
E/SQLiteDatabase(29308): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:962)
E/SQLiteDatabase(29308): at com.guayama.database.URLDatabaseHelper.checkDBExists(URLDatabaseHelper.java:86)
E/SQLiteDatabase(29308): at com.guayama.database.URLDatabaseHelper.createURLDB(URLDatabaseHelper.java:54)
E/SQLiteDatabase(29308): at com.guayama.database.URLDatabaseHelper.<init>(URLDatabaseHelper.java:38)
这是我打开数据库的初始代码:
SQLiteDatabase.openDatabase(mPath, null,SQLiteDatabase.CREATE_IF_NECESSARY);
这是我尝试过的另一种方法:
checkDB = SQLiteDatabase.openDatabase(mPath, null,
SQLiteDatabase.OPEN_READONLY);
我也试过用这个:
SQLiteDatabase.openDatabase(mPath, null,SQLiteDatabase.NO_LOCALIZED_COLLATORS);
关于如何解决这个问题有什么建议吗?
最佳答案
我总是按照以下步骤从 Assets 文件夹复制我的数据库:
private void copyDatabase() throws IOException{
InputStream inputStream = context.getAssets().open(DB_NAME);
String dbCreatePath = DB_PATH+DB_NAME;
OutputStream outputStream = new FileOutputStream(dbCreatePath);
byte[] buffer = new byte[1024];
int length;
while((length = inputStream.read(buffer))>0){
outputStream.write(buffer,0,length);
}
outputStream.flush();
outputStream.close();
inputStream.close();
}
一旦它被复制,我将检查如下:
private boolean checkDatabase(){
SQLiteDatabase checkDB = null;
try {
String dbPath = DB_PATH+DB_NAME;
checkDB = SQLiteDatabase.openDatabase(dbPath, null,
SQLiteDatabase.OPEN_READWRITE);
} catch (SQLiteException e) {
// TODO: handle exception
}
if(checkDB!=null){
checkDB.close();}
return checkDB != null ? true:false;
}
关于android - 获取 SQLiteCantOpenDatabaseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157049/
在 android 中使用 sqlite 数据库时,我遇到了一个奇怪的问题。我在表格中插入大约 500 个条目,但是当表格有大约 260-270 个条目时,它会显示此异常:
在我的应用程序中,我的 Assets 文件夹中有一个 SQLite 数据库的副本。据我所知,它工作正常。当我的应用程序第一次在我的模拟器中安装时,我收到如下错误: Failed to open the
在我的分析工具中,我可以看到 MD_LIFETAB_P9516 (Medion Lifetab) 有大量崩溃。它们因下面给出的堆栈跟踪而崩溃。 不过,其他任何设备都不会发生这种情况。在分析中,我可以看
我的应用程序已上线并从 Google Play 控制台收到“由:android.database.sqlite.SQLiteCantOpenDatabaseException:”引起的崩溃。 它主要发
我在打开 SQLite 数据库时遇到问题。它向我显示错误(代码 14)无法打开数据库。我已经尝试过针对先前提出的问题的解决方案,但没有帮助。我已经尝试检查数据库文件是否存在,我也添加了读写权限,但它仍
在我的内容提供者中,我创建并维护了 3 SQLiteDatabase对象。它们是这样创建的: private ContentProviderHelper helper; @Overri
当我尝试获取可读或可写的数据库时出现此错误。“SQLiteCantOpenDatabaseException:未知错误(代码 14)无法打开数据库”我在使用 SQLiteOpenHelper 时遇到了
我正在尝试从预构建数据库中打开文件。该数据库大约为 40-50 MB。我已经编写了将数据库从 Assets 复制到外部文件的代码。但是无法加载数据库。 我的数据库类 package com.examp
我在网站上阅读了有关此问题的各种内容,但我无法弄清楚这一点。我正在为此应用程序使用预构建数据库。我在这个应用程序中使用 jellybean。 AndroidManifest.xml
以下在数千台设备上运行,但最近我收到以下错误,两次,都是来自 android 6.0,所以它可能与新的 android 版本有关: RootUtils.copyDatabase(path, pathA
我已在网站上阅读了有关此问题的各种信息,但我无法弄清楚。我正在为此应用程序使用预构建数据库。我正在为这个应用程序使用 jellybean。 AndroidManifest.xml
所以我最近在我的应用程序中添加了持久性并且我得到了这个错误,有趣的部分是应用程序运行良好甚至持久化对象检索它们和所有但是在运行单元测试时我得到上面写的错误。 这是我的应用中有趣的部分 list 权限:
我正在尝试修复不允许我打开数据库的错误。可能通过所有合并,出了点问题,但我似乎找不到它。这是我的 Log Cat 报告。 E/SQLiteLog(894): (14) cannot open
我在网站上阅读了有关此问题的各种内容,但我无法弄清楚这一点。我被这一步卡住了好久。我该如何解决这个问题 Logcat 输出 根据logcat,这是由SQLiteCantOpenDatabaseExce
我是一名优秀的程序员,十分优秀!