此文章发布于63
个月前,部分信息可能已经过时
,请自行斟酌确认。
今天发现之前开发的一个 Android 项目自动更新失效了,发布了新版本后客户端一直提示是最新版。
项目使用的 android 自动更新类库
:https://github.com/ifu25/AndroidAutoUpdate
问题描述
开发 debug 模式下测试自动升级正常,发布 release 后不提示升级。
问题分析
经修改 AutoUpdateLib
类库增加了日志输出后发现 release
下获取到的最新版本 versionCode = 0
,而 debug
下没问题,另外一个使用了同一自动升级类库的项目没有问题,分析后发现有问题的项目使用了代码混淆
,造成获取到的升级信息 model
对象属性为空。
图1:版本号应该是 18,结果日志输出为 0
解决方案
代码混淆排除自动升级类库中的 model 类。
修改:proguard-rules.pro
文件增加如下
# 不混淆自动升级类库 model 类
-keep class cc.wco.autoupdate.model.** { *; }
修改后自动更新功能正常。