內建第三方平台時報java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader
這個是因為第三方庫通過jni調用系統:
第一,确定libs下面有沒有對應的so檔案
第二,看清楚so檔案位于的檔案目錄,如下圖
第三,檢查build.gradle中配置的目錄位置
第四,如果錯位最後有64byte或者32byte說明,你的so庫64和32位的拷貝出了問題,請重新拷貝即可
最後,如果還不行,可以試試下面方法,但這種相容性很差,因為Android很多的CPU架構都是"armeabi-v7a", "x86"種架構,是以可以在build.gradle檔案中配置固定
首先,這個錯誤很明顯是因為app沒識别到第三方的so庫,雖然你放在了libs下。那怎麼解決呢?
解決辦法:在module的build.grlade檔案android标簽裡面加入下面這個标簽,指明本地so庫位
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
如下:
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "cn.banwxf.shoppingmall"
minSdkVersion 19
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
}