天天看點

第三方包引入導緻該錯誤:java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader

內建第三方平台時報java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader

這個是因為第三方庫通過jni調用系統:

第一,确定libs下面有沒有對應的so檔案

第二,看清楚so檔案位于的檔案目錄,如下圖

第三方包引入導緻該錯誤:java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader

第三,檢查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']
        }
    }
}