问题如图:
问题的原因:
在网上搜索相关内容,可以看到这个是因为window下使用IDE或者命令行时出现的问题:命令行支持的字符串长度有限制,字符串的长度是8191个字符。
大家可参考更早的作者: https://www.jianshu.com/p/fed8a392c0a0(想法挺不错的)
解决问题的方法:
1.手工修改 yaml文件
!!brut.androlib.meta.MetaInfo
apkFileName: Rong360-release.apk
compressionType: false
doNotCompress: null
isFrameworkApk: false
packageInfo: {forcedPackageId: '127', renameManifestPackage: null}
sdkInfo: {minSdkVersion: '14', targetSdkVersion: '21'}
sharedLibrary: false
sparseResources: false
usesFramework:
ids: [1]
tag: null
version: 2.3.3
versionInfo: {versionCode: '316', versionName: 3.1.6}
注意doNotCompress 字段,当这里没有值的时候 可以完美解决apktool打包问题。
但是这里又有个问题,我们是用服务器打包的, 节约人力啊, 不能老是这么来一次手工,累死人了!!!!!!
2.使用python操作这个yaml文件。
python中 加入 yaml文件操作模块,可以轻易的清理掉所有值。当然使用java也是可以。
附录java解决问题的办法网页,这里还碰到一个压缩文件大小的问题,可参考网页:
https://yq.aliyun.com/articles/638431
3. 修改apktool源码
这个方法也是不错,不用多很多脚本,服务器替换也容易。目前我使用的是这个办法。
具体方法可以参考更早的作者: https://www.jianshu.com/p/fed8a392c0a0(想法挺不错的)
我也是修改了正值表达式,更适合自己的业务。