Android数据库太大,无法在onCreate上创建

Android数据库太大,无法在onCreate上创建,android,database,Android,Database,在我的应用程序中,我使用了两个Datatabase 这是处理数据库管理和对其进行的所有查询的类 public class Database { private DbHelper DBHelper; private final Context Context; private SQLiteDatabase MyDBone, MyDBtwo; static Context ctx; private static class DbHelper extends

在我的应用程序中,我使用了两个Datatabase

这是处理数据库管理和对其进行的所有查询的类

public class Database {

    private DbHelper DBHelper;
    private final Context Context;
    private SQLiteDatabase MyDBone, MyDBtwo;
    static Context ctx;

    private static class DbHelper extends SQLiteOpenHelper {
        public DbHelper(Context context, String dbName, int dbVersion) {
            super(context, dbName, null, dbVersion);
        }
        @Override
        public void onCreate(SQLiteDatabase db) {

            // This is where the two databases are created                  
            }
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVesion) {
            // database upgrades are handled here
            }
        }
    }

    // database constructor
    public Database(Context c) {
        Context = c;
        ctx = c;
    }

    // database open
    public Database open() throws SQLException {

            DBHelper = new DbHelper(Context, BD_NAME, BD_VERSION);
            // I have here some if code to decide witch one of the bellow is used
            if{
            MyDBone = DBHelper.getWritableDatabase();
            } else{
            MyDBtwo = DBHelper.getWritableDatabase();
            }

        return this;
    }

    // database close
    public void close() {
        DBHelper.close();
    }

    public Cursor getData(........) {

        // My querys are made here

    }
}
我的问题是数据库太大了。在onCreate方法中,我得到一个错误:
方法onCreate(SQLiteDatabase)的代码超过了65535字节的限制
。另一方面,我的应用程序越来越大

我想知道解决此问题的最佳方法是什么,因为我无法更改数据库。
由于我的应用程序必须脱机运行,因此无法在Web服务器上进行查询

我认为最好的办法是,在应用程序第一次运行时,从互联网上的某个地方(驱动器、dropbox或其他方面)下载数据库。但是由于我的编程技能有点生疏,我必须把这件事放在今后必做的事情上

在维护我的数据库类时,是否可以将apk与数据库预先打包并安装到SD卡上?另一方面,这将增加apk大小(数据库的总大小为15MB)

请就解决这一问题的最佳方式提出建议

问候,


favolas

这不是数据库问题,而是Dalvik方法大小限制的问题。你可以重构你的代码,我想你可以把一个.db文件放在你的资产中,而不是在计算机上创建它fly@iccthedral谢谢你说的是在
onCreate中创建两个函数,然后将数据库一个代码放在一个函数中,将数据库两个代码放在另一个函数中?@NathanZ Ok。然后,将数据库移动到SD卡,是否可以从资产中删除原始数据库?对不起,如果这是一个哑巴question@iccthedral如果数据库没有增长,这是一个可能的解决方案。谢谢还有其他建议吗?