最近做一个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文件
网友评论