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;

clip_image002

根據AndroidStudio所使用的proguard版本去官網上下載源碼,

地址為:https://sourceforge.net/projects/proguard/files/proguard/

2.找到源碼的ClassConstant.java類,在src\proguard\classfile文件當中,

然后將ATTR_StackMapTable 的值修改成 "dummy"(原值為StackMapTable),

clip_image004

兩個版本均修改。

3.下載的proguard源碼里面沒有ant文件、proguard-android.txt、proguard-android-optimize.txt、proguard-project.txt文件,到sdk文件夾里面復制過來,

     sdk的路徑為D:\AndroidSDK\tools\proguard

clip_image006

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

                  http://glblong.blog.51cto.com/3058613/1536516


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM