我开发了一个带有sqlite数据库的android应用程序。目前我的应用程序是在google play.Here我在执行选择查询时收到一些报告的问题,如“没有这样的表”。 实际上我从Assets文件夹中复制了我的数据库。在这里我按照下面给出的链接来复制我的数据库 Here is the link what i followed
代码就像
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等测试。我甚至没有得到问题,但我正在谷歌播放帐户强制关闭报告。任何人都可以知道它为什么会出错。请告诉我它会改进我的应用程序。
提前致谢。