在一个Android Studio工程中,有时候找不到libs中的so库文件。
couldn’t find “libxmediaplayer.so”
报错
2019-09-25 16:28:27.692 8741-8759/com.ad.carradio:player E/JavaBinder: *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.ad.carradio-YVOOlaFLFp3MfW7Z2LKAXQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.ad.carradio-YVOOlaFLFp3MfW7Z2LKAXQ==/lib/arm64, /system/lib64]]] couldn't find "libxmediaplayer.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
at java.lang.System.loadLibrary(System.java:1669)
解决办法
在build.gradle中增加:
android {
defaultConfig {
applicationId "com.ad.carradio"
ndk {
// 设置支持的SO库架构
abiFilters 'armeabi' ,'arm64-v8a' /*, 'x86'*///, 'armeabi-v7a', 'x86_64', 'arm64-v8a'
}
}
sourceSets.main {
jni.srcDirs = []
jniLibs.srcDirs = ['libs']
}
}
经测试,主要是要加入下面这个生效。
sourceSets.main {
jni.srcDirs = []
jniLibs.srcDirs = ['libs']
}
以此记录一下。