我正在开发一个使用 SQLite 数据库存储数据的 Android 应用程序。该应用程序在模拟器上运行良好,但是当我在物理设备(XAIOME NOTE 8)上测试它时,找不到在运行时读取的第一个表。
我检查了应用程序权限并全部授予,数据库文件正在保存到设备上的应用程序文件夹中。我正在使用以下代码将数据库从资产文件夹复制到应用程序文件夹:
try {
InputStream inputStream = context.getAssets().open(AppDataBase.db_NAME);
String outfile = context.getDatabasePath(AppDataBase.db_NAME).getPath();
OutputStream outputStream = new FileOutputStream(outfile);
byte[] buft = new byte[1024];
int length = 0;
while ((length = inputStream.read(buft)) > 0) {
outputStream.write(buft, 0, length);
}
outputStream.flush();
outputStream.close();
return true;
} catch (Exception e) {
return false;
}
我也检查了数据库文件名和表名,都是正确的。我试过在线搜索解决方案,但没有找到任何有效的方法。
如有任何关于如何解决此问题的建议,我们将不胜感激。提前谢谢你。
部分代码出错:
@SuppressLint("Range")
public List<Articles_of_Article_Screen> getAllArtigos(){
openDataBase();
String SQL = "SELECT * FROM artigos ORDER by id";
List<Articles_of_Article_Screen> list = new ArrayList<>();
cursor = db.rawQuery(SQL,null);
Articles_of_Article_Screen obj;
if(cursor.moveToFirst()){
do{
obj = new Articles_of_Article_Screen(
cursor.getString(cursor.getColumnIndex("titulo")),
cursor.getString(cursor.getColumnIndex("previa")));
list.add(obj);
}while (cursor.moveToNext());
}
closeDataBase();
return list;
}