繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM