android studio 混淆打包一直报错_核桃干货 | Android Studio多模块的SDK项目打包和混淆...

afe56c16a7edd5b1b6afa9376ab8d69f.gif


任务中遇到的难题

1.SDK项目多模块,编译后每个模块自己生成了1个jar包。但是需求是只对外发布一个jar包,需要进行合并多个jar包。

2.生成的jar包中因为模块引入了百度地图定位导致jar包内有不需要的asset文件杂项。

3.多模块的混淆问题。

解决方案每个模块在编译之后都会在XXX/build/intermediates/bundles/release/classes.jar 路径下生成jar包

使用如下脚本可协助你合并多个jar包 (路径问题自己解决哈)

#!/bin/sh#进入输出目录cd output#清空输出目录rm -rf  *#创建输出子目录mkdir tempmkdir release#定义sdk版本号version="1.0.0"#定义模块是否打包标识is_include_wifidao=trueis_include_location=trueis_include_interactive=trueis_include_wificonnect=true#省略其他...#解压所有release版本的jar包到temp目录中cd tempif $is_include_wifidao; then    jar -xvf ../../wifidao/build/intermediates/bundles/release/classes.jarfiif $is_include_location; then    jar -xvf ../../location/build/intermediates/bundles/release/classes.jarfiif $is_include_interactive; then    jar -xvf ../../interactive/build/intermediates/bundles/release/classes.jarfiif $is_include_wificonnect; then    jar -xvf ../../wificonnect/build/intermediates/bundles/release/classes.jarfi#压缩所有release版本的class文件到一个独立的jar包中jar -cvfM SDK_${version}_release.jar .#拷贝文件mv SDK_${version}_release.jar ../release#清空temp目录rm -rf *#删除temp目录cd ..rm -rf temp

第二个问题解决方案,将第三方库 单独新建一个模块来存放,然后在引入隔绝需要打包的模块中直接引入第三方库。(因为发现AS中不会将其他模块的东西编译进另外一个模块得到的启发)

b62ea20b34cdc93968bf68f266877acc.png

第三个问题,解决方案在合并为一个jar包之后,利用Android SDK自带的混淆工具将混淆配置导入,进行混淆。

需要注意:混淆时候记得导入依赖的第三方库/V4包/ Android SDK/

例如:Android SDK /usr/local/coding/env/android_sdk_linux/platforms/android-23/android.jarV4包    /home/lin/文档/git_repo/zhonglianSDK/output/support-v4-23.2.0-sources.jarvolley 百度地图定位gson 点底下Load configuration就可以导入 proguard-rules.pro文件 然后根据情况修改下即可,还可以保存配置~具体用法自己可以再查哈。 322b89c95ca649304767966646f06145.png

66841235d28a7db0a1207ad9a4da0d1c.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值