架包与so库冲突
一.架包冲突
常见冲突的架包为okhttp、okio、glide、gson、zip4j等。
以glide为例:
报错信息:
java.lang.NoSuchMethodError No virtual method placeholder(I)Lcom/bumptech/glide/request/RequestOptions; in class Lcom/bumptech/glide/request/RequestOptions; or its super classes (declaration of 'com.bumptech.glide.request.RequestOptions' appears in /data/app/com.sdym.jinlixuexi-THEnfkL_rUo8HozNpZ2cGw==/base.apk)
方案一:
将项目中各个引入相同库的版本改为一致。
方案二:
排除掉多场景SDK中的库,导入项目中需要的版本,如下:
api('net.polyv.android:polyvSDKLiveScenes:1.10.8') {
exclude group:'com.github.bumptech.glide',module:'glide'
}
implementation 'com.github.bumptech.glide:okhttp3-integration:xx.xx.xx'
二.so库冲突
常见的so库冲突为libc++_shared.so库
报错信息:
2 files found with path 'lib/arm64-v8a/ibc++-shared.so' from inputs:If you are using jniLibs and CMake IMPORTED targets, seehttps://developer.android.com/r/tools/jniLibs-vs-imported-targets
C:\sers Administratorl.gradle caches transfoms-3 3145107184bd587ba19fcadd7645transfomedjetified-mediaplayer-FuL-1,1.1 jnlar64-8e Libc+-_sthared.st
C: Users Adinistrator).grdlecaches transfom-\705ecaad84efaed5edddf21db transfomed jetified-pdfium-androd-1.90jnam64-vBa libc++-shared.s
解决方案:
在defaultConfig中加入packagingOptions选项:
packaging0ptions {
//下面为实际重复导致报错的so文件
pickFirst 'lib/arm64-v8a/libc++_shared.so
pickFirst 'lib/armeabi-v7a/libc++_shared.so
pickFirst 'lib/x86/libc++_shared.so'
pickFirst 'lib/x86_64/libc++_shared.so'
}
Last updated