美文网首页
AndroidStudio混淆打包jar遇到的几个问题

AndroidStudio混淆打包jar遇到的几个问题

作者: Coder丶Yi | 来源:发表于2019-11-15 16:37 被阅读0次

新接手的项目中有个sdk源码库需要进行混淆打包生成jar文件,编译的时候报了一个错如下:
(部分命名用xxx代表为了不泄露,下同)

java.io.IOException: The output jar [E:\work\AndroidDemo\AndroidDemo\xxxLib\build\outputs\jar\xxx_release.jar] must be specified after an input jar, or it will be empty.

编译配置如下:

//混淆jar包
task proguard(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
//  输入路径
    injars "build/intermediates/bundles/debug/classes.jar"
//  输出路径
    outjars 'build/outputs/jar/xxx_release.jar'
//  添加配置信息
    configuration 'proguard-rules.pro'
}

由于本菜鸡之前做的项目都没搞过混淆,更没有混淆生成jar包的经验,碰到报错了第一步当然是把错误信息百度了一下,一顿操作后发现很多文章都是说混淆文件写的有问题,可是和我这报的错明显是不对的,最后终于找到了一个文章说Androidstudio版本3点几之后build/intermediates文件夹下面没有bundles这个文件了,我查了下自己项目目录结构果然没有,由于这家公司入职的时候压根就没人交接直接把祖传代码丢给我的,也不清楚上一个开发的开发环境是啥配置。于是按网上说的将bundles换成packaged-classes,再进行编译就没报那个错了,如下:

//混淆jar包
task proguard(type: proguard.gradle.ProGuardTask, dependsOn: "build") {
//  输入路径
    injars "build/intermediates/packaged-classes/debug/classes.jar"
//  输出路径
    outjars 'build/outputs/jar/xxx_release.jar'
//  添加配置信息
    configuration 'proguard-rules.pro'
}

然后你以为这种祖传代码有这么好解决的么,新的问题又来了:

java.io.IOException: Please correct the above warnings first.

解决方法打开你的proguard-rules.pro文件添加-ignorewarnings,可以忽略所有警告,当然如
果对混淆比较有经验的大佬可以手动去排除警告,像我一样没搞过又赶时间的话就直接一行代码吧


没搞过混淆表示真的一脸懵逼啊,解决完一个又来一个:

java.lang.IllegalArgumentException: Can't find common super class of [com/yzx/api/CallType] (with 1 known super classes) and [com/yzx/listenerInterface/ConnectionListener] (with 1 known super classes)

根据报错大概意思是这两个类找不到,一脸懵逼。还是老办法复制粘贴打开百度,百度一下。解决办法是在proguard-rules.pro文件里面加上这一行 - dontoptimize然后再进行编译就OK了。

相关文章

网友评论

      本文标题:AndroidStudio混淆打包jar遇到的几个问题

      本文链接:https://www.haomeiwen.com/subject/bvgjictx.html