您的位置:首页 > 移动开发 > Android开发

Android studio 之 打包 model 成 jar (xutils 数据库升级版本校验问题)

2017-02-24 21:18 573 查看
今天遇到了Xutils的源码数据库校验问题

// update the database if needed
SQLiteDatabase database = dao.database;
int oldVersion = database.getVersion();
int newVersion = daoConfig.getDbVersion();
if (oldVersion != newVersion) {
**if (oldVersion != 0) {**
DbUpgradeListener upgradeListener = daoConfig.getDbUpgradeListener();
if (upgradeListener != null) {
upgradeListener.onUpgrade(dao, oldVersion, newVersion);
} else {
try {
dao.dropDb();
} catch (DbException e) {
LogUtils.e(e.getMessage(), e);
}
}
}
database.setVersion(newVersion);
}


if (oldVersion != 0) { 是问题的根源,由于数据库同步同步的是DB文件,所以默认版本是0,为了不影响线上用户的体验,只能改源码。

SQLiteDatabase database = dao.database;
int oldVersion = database.getVersion();
int newVersion = daoConfig.getDbVersion();
if(oldVersion != newVersion) {
DbUtils.DbUpgradeListener upgradeListener = daoConfig.getDbUpgradeListener();
if(upgradeListener != null) {
upgradeListener.onUpgrade(dao, oldVersion, newVersion);
} else {
try {
dao.dropDb();
} catch (DbException var7) {
LogUtils.e(var7.getMessage(), var7);
}
}

database.setVersion(newVersion);
}


如此这般问题解决了,but,Android studio提交代码的时候build 出来的文件40MB,我的天呐,手残的居然都提上去了,没办法,鉴于不让团队同学们对着屏幕干坐半个小时,果断打包走起。

在moudle的build.gradle文件的末尾处添加

task makeJar(type: Copy) {
delete 'build/libs/MPChartLib.jar'
from('build/intermediates/bundles/release/')
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'MPChartLib.jar')
}

makeJar.dependsOn(build)


完事儿之后运行terminal命令行

gradlew makeJar


over
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息