0

我使用 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 帐户中收到了强制关闭报告。任何人都可以知道为什么它会出错。请告诉我它会改进我的应用程序。

提前致谢。

4

0 回答 0