解決UnsatisfiedLinkError: dalvik.system.PathClassLoader

首先:

遇到這個問題首先是去libs目錄確認是否有對應的so文件,然后再確認build.gradle里面是否添加了jniLibs.srcDirs = ['libs','compilelibs']。

然后(關(guān)鍵):

在android studio上主工程A 通過compile方式添加了第三方j(luò)ira包B,B里面引入了其他的CPU架構(gòu)目錄,也會導致報上面的錯;
比如:主工程A的libs下原來只有armeabi-v7a,但是引入了第三方j(luò)iar包B,B里面包含了arm64-v8a的目錄,這樣會導致主工程運行的時候報錯。

檢查方法:打開APK文件,查看libs文件夾下的目錄結(jié)構(gòu)是否和主工程里面的libs文件夾不一樣。

解決方法:在根據(jù)自己項目的支持情況下,
刪除引用第三方sdk的library項目中l(wèi)ibs文件夾的arm64-v8a文件,在build.gradle文件里面添加如下代碼:

def deleteSO() {   
  def rootPath = rootProject.getRootDir().getAbsolutePath()   
  delete fileTree(dir: rootPath + "/app/build/intermediates/exploded-aar/com.netease.nis.plugin/bugrpt/" + "3.7" + "/jni/", excludes: ['**/armeabi-v7a/**', '**/armeabi/**'])    
}
project.afterEvaluate{   
 // debug模式下刪除SO庫
 tasks.getByName('prepareDebugDependencies') {    
    it.doLast {          
      deleteSO()       
   }   
 }    
  // 打包的時候刪除SO庫    tasks.getByName('prepareReleaseDependencies') {       
   it.doLast {          
    deleteSO()   
    }   
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容