apk中缺少资产文件夹和数据库

时间:2014-08-16 17:50:08

标签: android sqlite

我正在尝试使用databaseadapter类中的sqliteopenhelper开发一个带有2个表的数据库的应用程序。

    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:线程退出未捕获异常(组= 0x41f23700) 08-17 01:48:18.966:E / AndroidRuntime(4602):致命异常:主

非常感谢任何想法如何解决这个问题。

这是点击应用程序中崩溃的按钮时的新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 10月30日09:36:10 KST 2013

1 个答案:

答案 0 :(得分:0)

在您的设备上卸载并重新安装该应用。

如果问题消失,那是因为:

  • 您更改了数据库架构,添加了secondtable

  • 您未更新架构版本或实施onUpgrade()的{​​{1}}和

  • 您的设备已经有一个版本的应用程序,其中包含一个数据库,该数据库是使用缺少SQLiteOpenHelper的早期架构创建的