在一个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']
}
以此记录一下。
本文解决了一个常见的Android开发问题,即在工程中找不到libs目录下的libxmediaplayer.so库文件,导致运行时报错。通过在build.gradle文件中正确配置jniLibs.srcDirs参数,指向libs目录,可以成功加载所需的so库。
1401

被折叠的 条评论
为什么被折叠?



