Android两个第三方库引用同一个库冲突处理

2019-07-12  本文已影响0人  APP福星高照

最近做一个HBuild混编项目,Android端的。用的是vue和原生混编

HBuild加载vue资源文件及提供第三方库使用的是一个叫Dclound的组织。

在项目开发完后加入穿山甲信息流广告,遇到了一个大坑。

因穿山甲广告(头条的)要依赖android-gif-drawable,单独加入的还好。

可Dclound的base.aar包已经依赖了android-gif-drawable,并且打包进入他们的jar包内(还把别人混淆了)

固穿山甲不能再加入它。可在加载显示穿山甲广告时会直接奔溃

(java.lang.VerifyErrorVerifier rejected class com.androidquery.callback.DrawableAjaxCallback: android.graphics.drawable.Drawable com.androidquery.callback.Drawabltring (declaration of 'com.androidque)

问了穿山甲的技术说是没有正确引入android-gif-drawable导致的。可我新建一个demo没引入它能正常加载显示。

没办法只能硬想办法加进去。

开始是在gradle文件加入各种命令防重复引用,但都不行。

中间还有其它各种折腾,在这就不写了,最后给大家分享一个终极解决方案!

1、解压打包了android-gif-drawable的jar包,改名为zip文件解压,反编译的无法重新jar

2、去除内部的android-gif-drawable文件(pl/下面的,都是class文件)

3、重新打包为jar包,命令行是:jar cfm jarName.jar META-INF/MANIFEST.MF ./

4、重新加入到项目中,同时引入正常的android-gif-drawable.aar文件

注意:去除项目框架包内的时候要记得去掉jni文件下的****gif.so文件

上一篇 下一篇

猜你喜欢

热点阅读