AndroidStudio出现 Unknown verification type [95] in stack map frame 问题的解决办法
产生问题的原因:引用的第三方库已经混淆过,再在本地进行编译混淆的时候就会报出这个错误。
解决的办法:若无法修改第三方库,则修改混淆器,重新进行编译,将新的混淆器覆盖原来的混淆器,则可以解决。
1.查看AndroidStudio所使用的proguard的版本,
路径为D:\Program Files\Android\Android Studio\gradle\m2repository\net\sf\proguard\proguard-base;
根据AndroidStudio所使用的proguard版本去官网上下载源码,
地址为:https://sourceforge.net/projects/proguard/files/proguard/
2.找到源码的ClassConstant.java类,在src\proguard\classfile文件当中,
然后将ATTR_StackMapTable 的值修改成 "dummy"(原值为StackMapTable),
两个版本均修改。
3.下载的proguard源码里面没有ant文件、proguard-android.txt、proguard-android-optimize.txt、proguard-project.txt文件,到sdk文件夹里面复制过来,
sdk的路径为D:\AndroidSDK\tools\proguard
4.使用ant将所源码进行编译打包,具体的教程可以参考博客
http://glblong.blog.51cto.com/3058613/1536516
5.将打包好的文件覆盖掉原来的文件,注意还要在覆盖缓存当中的文件,路径为
C:\Users\A\.gradle\caches\modules-2\files-2.1\net.sf.proguard\proguard-base\4.11\76730af417bb42da22b16e49f49e67863382b9bd
如果有多个版本,则多个版本均覆盖。
6.重启AndroidStudio,发现问题已经没有了。
参考博客:http://blog.csdn.net/jiguangcanhen/article/details/41806599