百度为什么连手机输入法都做不好,小米版本一打字就自动回缩ui?

首先介绍一下出现问题的背景:

最近在做应用升级的时候由于在新版本中proguard-rules.pro新增了一些混淆配置,在旧版本升级到新版本进入应用的时候小米手机就会报如下错误:

这个崩溃日志是小米系统直接捕获的,但是我应用里通过实现 UncaughtExceptionHandler 确不能捕获这个异常,通过上面日志exception java.lang.NoSuchMethodError能看出这个确实是由于混淆导致的无法找到应用方法出现的问题,但是这个问题在其他手机上(华为、oppo、nubia)并不会出现。

通过测试发现在小米手机上出现此问题之后,到设置-应用管理里面找到该应用清除应用数据,之后应用又神奇般的能正常使用了,再结合上面日志里面出现的data/app/应用包名/lib/***.so,由此推断小米系统在覆盖安装或升级新版本应用的时候如果老版本和新版本存在相同库文件并不会重新加载进系统导致新版本安装之后用的还是老版本加载的库文件,然而新版本由于新增了混淆而与老版本的缓存文件之间没有必要的关联,从而导致找不到方法名而报错。至于为什么只有小米系统出现这个问题,这个也许是小米手机系统应用安装的机制跟其他厂商不一样。

根据上面分析,在新版本进入应用初始化的时候对应用缓存进行一次清理,在系统检测到没有缓存之后就会重新加载新的文件;
/databases下面保存的db数据库文件,/shared_prefs下面保存的是SharePreference数据,这两个文件下面的文件保存着用户数据,可以不用删除或者选择性删除,删除代码如下:

 在删除SharePreference数据的时候,我只保留了自己创建的user_info.xml,其他的都删除了,因为在测试过程中发现如果保留整个/shared_prefs文件夹的话还是会报错,里面有一些友盟或者其他的三方库写进去的数据如果不清除的话也会报错,所已在这里我只保留了自己的数据。
这么一来由于混淆配置导致的新版本升级问题解决。

如有不同观点或文中错误,欢迎大神指正。

 

由MIUI和搜狗联合打造的搜狗小米版beta出炉,欢迎各位米粉使用。

1.与MIUI V4系统高度统一的风格和交互操作,交互更简单流畅;
2.简单直观的键盘切换方式,在任何键盘界面点击左上角图标即可快速切换;
3.为系统各种场景设计的特殊键盘,持续增加中。

软件安装后是无图标的,请进入设置中的输入法选项进行软件设置即可。非小米或MIUI系统的亦可正常使用。

专为MIUI系统开发的一款搜狗输入法,软件界面更简洁,与MIUI系统的契合度更好。推荐给各位米粉或使用MIUI系统的机友们!

    安装帮助:RAR/ZIP文件请先解压,APK/JAR文件勿解压!

我要回帖

更多关于 搜狗输入法小米版最新版本 的文章

 

随机推荐