数据库未从资产复制

不好说只是粘贴我的代码,希望有人能看到我所缺少的内容:


数据库


package gr.peos;


import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;


import android.content.Context;

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteException;

import android.database.sqlite.SQLiteOpenHelper;


public class Database extends SQLiteOpenHelper{


//The Android's default system path of your application database.

private static String DB_PATH = "/data/data/gr.peos/databases/";


//Name of the Database to be created.

private static String DB_NAME = "BLib";


private SQLiteDatabase myDataBase; 


private final Context myContext;


 /**

 * Constructor

 * Takes and keeps a reference of the passed context in order to access to the application assets and resources.

 * @param context

 */


public Database(Context context) {


    super(context, DB_NAME, null, 1);

    this.myContext = context;

}   

调用它的部分在我的主要活动的onCreate方法上(也尝试过其他方法,但这并不是问题所在)。


 Database myDbHelper = new Database(null);

    myDbHelper = new Database(this);


    try {

        myDbHelper.createDataBase();


    } catch (IOException ioe) {


        throw new Error("Unable to create database");

        }


try {




}catch(SQLException sqle){


    throw sqle;


  }

现在很奇怪。在我的设备上(我没有超级用户访问权限,因此在创建数据库后无法提取它),我的数据似乎为48KB。在模拟器上运行完全相同的代码时,不会复制数据库(Im不会在任何异常情况下进行选择)。确切地说,android / metadata表似乎正在被复制,但是其他表与数据不在同一个位置。有任何想法吗?


鸿蒙传说
浏览 611回答 2
2回答

白猪掌柜的

如果您的文件名在Assets文件夹中具有扩展名,则必须添加代码。喜欢private static String DB_NAME = "BLib.extension";扩展名就像“ .sqlite”,“。db” ... etc
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java