[英]Missing assets folder and database in apk
我正在尝试通过databaseadapter类中的sqliteopenhelper开发具有2个表的1个数据库的应用程序。
DatabaseHelper myDBHelper;
private static SQLiteDatabase db;
private final Context context;
public DbA(Context ctx) {
this.context = ctx;
myDBHelper = new DatabaseHelper(context);
}
public DbA open() {
db = myDBHelper.getWritableDatabase();
return this;
}
public void close() {
myDBHelper.close();
}
private static class DatabaseHelper extends SQLiteOpenHelper
{
private static final String K_I = "_id";
private static final String K_CC = "cc";
private static final String T_DGI = "dgi";
private static final String CREATE_FIRSTTABLE =
"create table if not exists firsttable (" + K_I + " integer primary key autoincrement, "
+ K_CC + " text not null, "
+ ");";
private static final String CREATE_SECONDTABLE = "create table if not exists secondtable ("
+ K_I + " integer primary key autoincrement, "
+ T_DGI + " text not null, "
+ ");";
DatabaseHelper(Context context) {
super(context, DATABASE, null, D_VERS);
}
@Override
public void onCreate(SQLiteDatabase _db) {
try{
_db.execSQL(CREATE_FIRSTTABLE);
_db.execSQL(CREATE_SECONDTABLE);
}catch(SQLException e)
{ e.printStackTrace(); }
}
@Override
public void onUpgrade(SQLiteDatabase _db, int oldVersion, int newVersion) {
}
}
在此过程中,我已通过ddms中的文件资源管理器提取了数据库,以手动插入数据(针对两个表)并将其推回eclipse中。 在所有这些期间,该项目在虚拟AVD仿真器中运行完美。
但是,一旦我尝试使用实际的android设备运行它,它将引发一条带有logcat的错误,指出未找到secondtable?
08-17 01:48:18.951:E / SQLiteLog(4602):(1)没有这样的表:secondtable 08-17 01:48:18.956:D / AndroidRuntime(4602):关闭VM 08-17 01:48: 18.956:W / dalvikvm(4602):threadid = 1:线程以未捕获的异常退出(group = 0x41f23700)08-17 01:48:18.966:E / AndroidRuntime(4602):FATAL EXCEPTION:main
对于如何解决此问题,您将非常感谢任何想法。
这是单击应用程序内的一个按钮时将其崩溃的新logcat读数。.不确定这是什么意思
08-17 02:35:39.631:E /(8527):设备驱动程序API匹配08-17 02:35:39.631:E /(8527):设备驱动程序API版本:23 08-17 02:35:39.631:E /(8527):用户空间API版本:23 08-17 02:35:39.631:E /(8527):mali:REVISION = Linux-r3p2-01rel3 BUILD_DATE = Wed Oct 30 09:36:10 KST 2013
卸载并重新安装设备上的应用程序。
如果问题消失了,那是因为:
您更改了数据库架构,添加了secondtable
,
您没有更新架构版本或实现SQLiteOpenHelper
onUpgrade()
,并且
您的设备已经具有使用数据库的应用程序版本,该数据库是使用缺少secondtable
的早期架构创建的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.