我使用 sqlite 数据库开发了一个 android 应用程序。目前我的应用程序在 google play 中。在这里我在执行选择查询时收到一些报告的问题,例如“没有这样的表”。实际上我从 Assets 文件夹中复制了我的数据库。在这里,我按照下面给出的链接复制我的数据库 这是我遵循的链接
通过代码就像
public class DbFromAssets extends SQLiteOpenHelper {
private String DB_PATH = Environment.getDataDirectory()+"/data/package/databases/";
private static String DATABASE_NAME = "mydb.db";
private final String DEFAULT_DESTINATION = DB_PATH + DATABASE_NAME;
@SuppressWarnings("static-access")
public DbFromAssets(Context ctx)
{
super(ctx, DATABASE_NAME, null, 1);
try
{
this.getReadableDatabase();
InputStream is = ctx.getAssets().open(DATABASE_NAME);
byte[] buffer = new byte[512];
int length;
OutputStream os = new FileOutputStream(DEFAULT_DESTINATION);
while ((length = is.read(buffer)) >0){
os.write(buffer, 0, length);
}
os.flush();
os.close();
is.close();
this.close();
}catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
我在我的启动画面中调用这个类方法,如下所示
@SuppressWarnings("read-database")
DbFromAssets readdb= new DbFromAssets(SplashActivity.this);
我在模拟器和可用设备(如 lg sprint、motorolo droid 等)中测试过,这在我身边非常有效。我什至一次都没有遇到问题,但我在 google play 帐户中收到了强制关闭报告。任何人都可以知道为什么它会出错。请告诉我它会改进我的应用程序。
提前致谢。