今天遇到了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