gradle导包/混淆问题

来源:互联网 发布:淘宝达人怎么写帖子 编辑:程序博客网 时间:2024/06/01 10:04

使用gradle导包有时候会莫名其妙导不进去.

今天就遇到了一个奇葩的问题.

创建了module,APP引入module.在module里面依赖了一个自己写的请求库,编译时期在APP里面可以正常显示和使用,到了打包的时候,在APP的路径下死活报一个找不到类(jar里面的类),问题是我已经把jar导入了module中.
这里写图片描述

这里写图片描述

解决过程:

于是乎开始查找错误.
1.检查module的导包情况,使用的是 compile 模式没有问题.
2.检查APP的导包情况也是 compile 没有问题.
那么问题就奇怪了.

首次解决

没办法不知道什么原因导致 APP中无法获取到jar里面的内容.那我就直接把jar再次拷贝到APP的lib下面不就好了. 编译-打包-通过. 方法可行.但我不是只解决问题,就跑的人,这还是不知道原因,我就要打破砂锅.

思考

既然module的导包都没问题,在编译期APP里面也能够找到.为何打包之后就不行. 那么打包了之后这里jar有没有真正打进去?
答案是: 已经打进去了.
可是为何找不到? 在APP里面再多放一个jar又可以????

真正原凶

好吧.大概原因出来了. 没错.就是打包必须做的事—–混淆的问题.
原来module里面我用了混淆,Android studio 会默认帮你配置混淆的.只要你设置了
“minifyEnabled true” 你的内容就会根据默认配置帮你混淆. 所以明白了吗?
这里写图片描述

问题出现的过程分析

在打包过程中module内容已经被混淆了,而这份混淆的清单并没有在APP里面备份,所以APP读不到之前的类了.
这也就解释了为什么编译时期可以读到,打包后就不行.

真实有效的解决方案

方法两种:
1.module直接不混淆,问题解决
2.修改混淆文件,不混淆jar.


think think think thinking thinking thingKing .
it is importent.

0 0
原创粉丝点击