項目工程中,引用了一個第三方的SDK,它的jar包是已經混淆過的。在IDE下代碼編譯沒問題,但是運行在手機上就報錯。
Error:Execution failed for task ‘:app:shrinkDebugMultiDexComponents’. java.io.IOException: Can’t read [src/app/build/intermediates/multi-dex/debug/allclasses.jar] (Can’t PRocess class [com/dvrcam/DvrCamSDK/a$d.class] (Unknown verification type [255] in stack map frame))
大致意思是jar包目錄com/dvrcam/DvrCamSDK/a/下的內部類d.class混淆失敗。
在工程的根目錄下創建一個文件夾proguard,放入proguard.jar文件,下載地址:proguard.jar
在根目錄的build.gradle文件中加入 flatDir { dirs ‘proguard’ } 和 classpath ‘proguard.io:proguard:5.2.1’
// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { flatDir { dirs 'proguard' }//1.依賴庫類目錄 jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' classpath 'proguard.io:proguard:5.2.1'//2.依賴的庫類 }}allprojects { repositories { jcenter() }}按照以上步驟操作,就能運行成功!
新聞熱點
疑難解答