Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 打开sqlite数据库失败_Android - Fatal编程技术网

Android 打开sqlite数据库失败

Android 打开sqlite数据库失败,android,Android,我将我的sqlite数据库文件放在“assets”文件夹中,我编写了一个DAO calss来从数据库中获取数据,但是log.e中的信息意味着我无法打开数据库 公共类GetData{ private static String DB_PATH = "/data/data/com.SGMalls/databases/mallMapv2.sqlite"; private static SQLiteDatabase myDataBase; public static ArrayList<Ma

我将我的sqlite数据库文件放在“assets”文件夹中,我编写了一个DAO calss来从数据库中获取数据,但是log.e中的信息意味着我无法打开数据库

公共类GetData{

 private static String DB_PATH = "/data/data/com.SGMalls/databases/mallMapv2.sqlite";

private static SQLiteDatabase myDataBase;

public static ArrayList<Mall> getMall(){

   ArrayList<Mall> mallArrayList=new ArrayList<Mall>();

    String queryString="select id,title from malls order by title";

    myDataBase = SQLiteDatabase.openDatabase(DB_PATH,      null,SQLiteDatabase.OPEN_READONLY);

    Cursor cursor=myDataBase.rawQuery(queryString, null);

  if(cursor!=null){

    cursor.moveToFirst();

    while(!cursor.isLast()){

     Mall mall=new Mall();

     mall.setMallid(cursor.getInt(0));

     mall.setMallname(cursor.getString(1));            
    mallArrayList.add(mall);
cursor.moveToNext();
   } }
 myDataBase.close();

 return mallArrayList;

}}
private静态字符串DB_PATH=“/data/data/com.SGMalls/databases/mallMapv2.sqlite”;
私有静态SQLiteDatabase-myDataBase;
公共静态数组列表getMall(){
ArrayList mallArrayList=新的ArrayList();
String queryString=“按标题从商场订单中选择id、标题”;
myDataBase=SQLiteDatabase.openDatabase(DB\u PATH,null,SQLiteDatabase.OPEN\u READONLY);
Cursor Cursor=myDataBase.rawQuery(queryString,null);
如果(光标!=null){
cursor.moveToFirst();
而(!cursor.isLast()){
购物中心=新购物中心();
setMallid(cursor.getInt(0));
setMallname(cursor.getString(1));
mallarylist.add(mall);
cursor.moveToNext();
} }
myDataBase.close();
返回mallarylist;
}}

资产文件夹直接与数据库无关。如果将数据库放在
assets/
文件夹中,则需要将其从
assets/
文件夹复制到实际文件系统中希望数据库驻留的位置。

请查看这一点

您必须首先调用
createDataBase()
方法。如果
createDataBase()
成功运行,您可以检查
/data/data/com.SGMalls/databases/mallMapv2.sqlite
是否确实存在

如果它已经存在,它不会对它造成任何伤害


copyDataBase()
应该为您解释一下如何将资产复制到../databases/。

非常感谢。所以如果我把数据库复制到SD卡上。那么字段路径也是/data/data/com.SGMalls/databases/mallMapv2.sqlite”?谢谢,我的意思是我刚刚设置的复制路径是:/data/data/com.SGMalls/databases/mallMapv2.sqlite“那么这个文件存储在哪里?嵌入此应用程序?我很抱歉。我是android开发的新手。