网上很多混淆编译的实力,说遇到什么问题,怎样的解决方法,但我用那些都没能解决问题,
最后发现这个小方法解决了;发生这个错误是因为打包混淆时找不到我们的引用包,有的人可能说我没有引用什么Library啊,事实上,我们现在的项目创建时就默认有v4包,这是google提供的兼容包,主要为了应对Android3.0以后的新组建也可以在3.0之前使用,例如Fragment,ViewPager等等,好了,现在我们回到正题,问题我们知道了,解决办法随之而来,我们在proguard-project.txt文件(2.3左右android版本应该是proguard.cfg文件)中添加以下语句:
- -ignorewarnings
- -libraryjars libs/android-support-v4.jar
下面的这句指向的是v4包在项目中的地址,位于libs文件夹下,如果你是其他引用包报次错误,请改为相应的名称即可解决。
其实主要目的就是在混淆时找到相应的jar包,
类似于:
-ignorewarnings
-libraryjars libs/android-support-v4.jar
-libraryjars libs/jpush-sdk-release1.7.0.jar
-libraryjars libs/libammsdk.jar
-libraryjars libs/mframework.jar
-libraryjars libs/securepay-lib.jar
-libraryjars libs/ShareSDK-Core-2.3.12.jar
-libraryjars libs/ShareSDK-QQ-2.3.12.jar
-libraryjars libs/ShareSDK-ShortMessage-2.3.12.jar
-libraryjars libs/ShareSDK-Wechat-2.3.12.jar
-libraryjars libs/ShareSDK-Wechat-Core-2.3.12.jar
-libraryjars libs/ShareSDK-Wechat-Favorite-2.3.12.jar
-libraryjars libs/ShareSDK-Wechat-Moments-2.3.12.jar
-libraryjars libs/universal_image_loader.jar
今天混淆编译的时候又遇到新问题:
当混淆编译以后,引用的第三方类(比如支付类,分享类)等都不能正常工作,然后我使用-keep方式不让这些第三方类进行混编,这样就很好的解决了这些问题。