Android进阶

聚合sdk打包问题处理

2019-06-05  本文已影响0人  稻草人_a032

1、回编译出现文件名或扩展名太长错误
解决方案:减少apktool.yml文件中doNotCompress不加密的文件

2、回编译出现“class not find brut.androidlib.meta.MetaInfo”

解决方案:删除apktool.yml文件中的第一行代码【!!brut.androidlib.meta.MetaInfo】

3、aapt处理时提示“First type is not attr!”

解决方案:aapt版本出现问题,替换当前最新的版本,别忘记apktool中还有aapt版本

4、apktool反编译的时候出现警告【counld not write to 文件路径】

解决方案:配置apktool相对路径

5、对于回编译的时候出现方法数超出限制

解决方案:尝试将smali中的文件转移到其他smali_classes路径下

6、出现【java.lang.UnsupportedClassVersionError】

解决方案:调整java与javac的版本匹配

7、回编译出现系统资源找不到

解决方案:更新android.jar到最新的系统框架

8、出现一些适配res目录中属性找不到或报错的情况

解决方案:可以暂时删除当前属性,或把整个适配文件也删除

9、有些包直接修改了包名后,出现找不到R文件的情况

解决方案:需要再一次编译R文件后再回编译

10、出现回编译前后包体大小发生重大变化

解决方案:调整apktool.yml中doNotCompress文件集合,使得有些文件需要压缩

11、回编译的时候,日志显示不是PNG图片

解决方案:找到相应的图片,用图片工具重新转换PNG格式

12、回编译出现找不到complieSdkVersion、compileSdkVersionCodename

解决方案:更新android.jar最新版本

13、编译出现【java.lang.UnsupportedClassVersionError】

解决方案:当前电脑的jdk版本过低

14、编译后包体出现微信闪退

解决方案:需要再微信activity中加入configChanges="screenSize"

15、运行包体崩溃,日志显示:【java.lang.NoSuchMethodError:NO static method checkSelfPermission】

解决方案:更新support-V4包

16、运行包体崩溃,日志不明显

解决方案:查看新加入的sdk是否存在so库,如果有,请保持和母包同样的环境目录,如果没有,再查看是否时jar冲突

17、运行包体,支付闪退

解决方案:删除manifest中对应支付组件样式资源【NO_DISPLAY】

18、出现MalformedByteSequenceException:2字节的UTF-8序列的字节2无效

解决方案:Manifest文件中存在中文字符,出现乱码

19、icon不对

解决方案:替换所有涉及icon的目录下的资源

20、反编译失败,出现serializeToResValuesXml

解决方案:修改apktool命令 带上-r

21、回编译报错,出现找不到的资源

解决方案:删除找不到的资源的索引信息

注意:

1、编译和回编译最好使用同一个apktool操作

2、apktool中记得需要及时更新Android框架版本

3、apktoo2.1一下默认对assets下加密的,高于2.1版本默认时不加密的,需要自己手动加密,具体需要加密的文件后缀参考apktool源码中说明信息

4、出现aapt版本也需要升级,注意要考虑aapt2的影响

5、打包过程注意jar冲突

6、打包后运行不正常,排查母包是否限制包名,签名

7、出现其他异常编译或回编译异常的情况,可以尝试更换apktool版本

持续更新中。。。。

上一篇下一篇

猜你喜欢

热点阅读