编写的内置应用,点击报错,查看log
library "/system/priv-app/FMRadio/lib/arm64/libfmjni.so" ("/system/lib64/libfmjni.so") needed or dlopened by "/system/lib64/libnativeloader.so" is not accessible for the namespace: [name="classloader-namespace", ld_library_paths="", default_library_paths="/system/priv-app/FMRadio/lib/arm64:/system/priv-app/FMRadio/FMRadio.apk!/lib/arm64-v8a", permitted_paths="/data:/mnt/expand:/data/data/com.android.fmradio"]
网上查看解决办法
1. 将so库加到/bionic/linker/linker.cpp里的kLibraryGreyList列表中 无效
2. 在/system/core/libnativeloader/native_loader.cpp中的static constexpr const char* kWhitelistedDirectories = "/data:/mnt/expand";的/data:/mnt/expand值后添加system/priv-app
我的是lib64 所以添加system/lib64 >> 有用唉,还是报错
java.lang.UnsatisfiedLinkError: dlopen failed: library "libcutils.so" not found
3. 修改系统的public native lib path: /system/etc/public.libraries.txt文件,可是我是系统源码,不能每次都更改手机里的文件啊
继续找
4. 源码中 system/core/rootdir/etc/public.libraries.android.txt中添加.libfmjni.so
libandroid.so
libaaudio.so
libc.so
libcamera2ndk.so
libdl.so
libEGL.so
libGLESv1_CM.so
libGLESv2.so
libGLESv3.so
libicui18n.so
libicuuc.so
libjnigraphics.so
liblog.so
libmediandk.so
libm.so
libnativewindow.so
libOpenMAXAL.so
libOpenSLES.so
libRS.so
libstdc++.so
libsync.so
libvulkan.so
libwebviewchromium_plat_support.so
libz.so
libfmjni.so 添加
ok了.