我正在创建一个Android应用程序,我正在使用sqlite数据库.因为我已经在项目的资产文件夹中放置了一个sqlite文件,我在使用下面的代码首次执行应用程序时将此文件复制到手机.
private void copyDataBase() throws IOException {
new File(DB_PATH).mkdirs();
InputStream myInput = appContext.getAssets().open(DB_NAME);
String outFileName = DB_PATH + DB_NAME;
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
myOutput.flush();
myOutput.close();
myInput.close();
}
Run Code Online (Sandbox Code Playgroud)
但我得到了这个错误.
09-21 18:03:56.841: E/SQLiteLog(7850): (1) no such table: tbl_player
Run Code Online (Sandbox Code Playgroud)
但是这个表存在于资产文件中.所以我使用这种方法从手机中获取数据库文件.
public static void exportDB(String databaseName, Context context) {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = …Run Code Online (Sandbox Code Playgroud) 我在我的一个Android项目中使用Sqlite数据库.除One Plus Two设备外,它在所有设备中都能正常工作.
我在尝试打开数据库时遇到异常.这是崩溃日志.
12-23 19:14:35.235: E/SQLiteLog(3133): (11) database corruption at line 53216 of [9491ba7d73]
12-23 19:14:35.235: E/SQLiteLog(3133): (11) statement aborts at 7: [SELECT locale FROM android_metadata UNION SELECT NULL ORDER BY locale DESC LIMIT 1]
12-23 19:14:35.237: E/SQLiteDatabase(3133): Failed to open database '/data/data/com.mycompany.myapp/databases/alcochange.sqlite'.
12-23 19:14:35.237: E/SQLiteDatabase(3133): android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.mycompany.myapp/databases/myapp.sqlite' to 'en_US'.
Run Code Online (Sandbox Code Playgroud)
请单击此处查看完整的崩溃日志
我在这里看过其他类似的问题,我几乎尝试了所有答案,但没有任何效果.我试过这个和这个.
编辑:该设备在氧气棒棒糖上运行.
当我将它连接到我的ubuntu 14.04时,我只能看到用于安装ADB的USB驱动程序.
OnePlus One有一些解决方案(见这里),但我找不到OnePlus 2的解决方案.
用户已报告OnePlus中有两个移动设备的错误,我想调试我的OnePlus移动应用程序.我试过检查用户手机,这个bug存在.即使我基于相同的规范创建AVD,我也无法模拟AVD中的错误[我希望它不是基本的本机操作系统,它可能在OxygenO中有一些变化].我没有机会连接调试.请帮忙,如何使用OxygenOS版本2.2.1为OnePlus2创建一个AVD进行调试,我不能每次都依靠手机进行调试.有没有可用于调试OnePlus手机的sdk?
请帮忙.这是一个很大的阻碍者...欣赏想法
我已将资产中的db文件复制到app数据库并成功复制.当我在任何表上查询时,它不返回这样的表异常.我从该手机中获取了db文件,并且它具有所需的所有表.我知道它有点奇怪,但这个错误只出现在OnePlusTwo设备上.所以我的问题是这是一个设备特定问题或其他任何人面临的一般问题.如果有人在任何其他手机上遇到此问题或知道如何解决此问题,请提及.我没有发布任何代码,因为它只出现在一个设备上,但如果有人需要,请提及我将发布该部分