E/linker: library "/vendor/lib64/libgnustl_shared.so" ("/vendor/lib64/libgnustl_shared.so") needed or dlopened by "/apex/com.android.runtime/lib64/libnativeloader.so" is not accessible for the namespace: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/edu.njucm.sportsapp-IdmLdNNAvItyHArn-3btmg==/lib/arm64:/data/app/edu.njucm.sportsapp-IdmLdNNAvItyHArn-3btmg==/base.apk!/lib/arm64-v8a", permitted_paths="/data:/mnt/expand:/data/data/edu.njucm.sportsapp"] 2023-05-11 22:00:21.758 27788-27788/edu.njucm.sportsapp W/System.err: java.lang.UnsatisfiedLinkError: dlopen failed: library "/vendor/lib64/libgnustl_shared.so" needed or dlopened by "/apex/com.android.runtime/lib64/libnativeloader.so" is not accessible for the namespace "classloader-namespace" 2023-05-11 22:00:21.758 27788-27788/edu.njucm.sportsapp W/System.err: at java.lang.Runtime.loadLibrary0(Runtime.java:1071)
时间: 2023-06-17 15:05:49 浏览: 2188
这个错误提示是因为在你的应用中使用了需要加载的库文件"/vendor/lib64/libgnustl_shared.so",但是这个库文件被限制在了一个叫做"classloader-namespace"的命名空间中,而你的应用无法访问到这个命名空间。这可能是由于权限问题导致的。你可以尝试在应用程序的清单文件中添加更高的权限或者查看是否需要在应用程序中添加其他库文件。
相关问题
/usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../aarch64-linux-gnu/libmali.so: .dynsym local symbol at index 3 (>= sh_info of 3) /usr/bin/ld: /usr/lib/gcc/aarch64-linux-gnu/10/../../../aarch64-linux-gnu/libmali.so: .dynsym local symbol at index 4 (>= sh_info of 3)
这个错误通常是由于链接器无法正确处理某些本地符号导致的。在您的情况下,似乎是链接器无法正确处理 libmali.so 库中的某些本地符号。
尝试使用 `-Bsymbolic` 选项重新链接您的应用程序或库,这个选项会告诉链接器在链接时尽可能使用本地符号,而不是全局符号。您可以在 CMake 中使用以下方式来添加这个选项:
```cmake
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic")
```
如果这个选项不能解决问题,您可以尝试升级您的 libmali.so 库或相关的依赖项,以确保它们都是最新的版本,并且与您的系统和其他库兼容。
此外,还需要确保您的编译器和链接器都是最新的版本,并且与您的系统和其他库兼容。您可以尝试升级编译器和链接器,以解决任何版本不兼容的问题。
如果上述方法均无法解决问题,您可以尝试使用 `--exclude-libs` 选项来排除链接器无法处理的库。例如,如果您想排除 libmali.so 库,您可以在链接时使用以下选项:
```
-Wl,--exclude-libs,/usr/lib/gcc/aarch64-linux-gnu/10/../../../aarch64-linux-gnu/libmali.so
```
请注意,在进行任何更改之前,请备份您的系统和数据,以防止意外数据丢失或损坏。
linker: Warning: "/system/lib/libavformat.so" unused DT entry: unknown (type 0x24 arg 0x11ae8) (ignoring) WARNING: linker: Warning: "/system/lib/libavformat.so" unused DT entry: unknown (type 0x24 arg 0x11ae8) (ignoring) linker: Warning: "/system/lib/libavformat.so" unused DT entry: unknown (type 0x23 arg 0xa80) (ignoring) WARNING: linker: Warning: "/system/lib/libavformat.so" unused DT entry: unknown (type 0x23 arg 0xa80) (ignoring) linker: Warning: "/system/lib/libavformat.so" unused DT entry: unknown (type 0x25 arg 0x4) (ignoring) WARNING: linker: Warning: "/system/lib/libavformat.so" unused DT entry: unknown (type 0x25 arg 0x4) (ignoring) linker: Warning: "/system/lib/libuapi_securec.so" unused DT entry: unknown (type 0x24 arg 0xc4c) (ignoring) WARNING: linker: Warning: "/system/lib/libuapi_securec.so" unused DT entry: unknown (type 0x24 arg 0xc4c) (ignoring) linker: Warning: "/system/lib/libuapi_securec.so" unused DT entry: unknown (type 0x23 arg 0x8) (ignoring) WARNING: linker: Warning: "/system/lib/libuapi_securec.so" unused DT entry: unknown (type 0x23 arg 0x8) (ignoring) linker: Warning: "/system/lib/libuapi_securec.so" unused DT entry: unknown (type 0x25 arg 0x4) (ignoring) WARNING: linker: Warning: "/system/lib/libuapi_securec.so" unused DT entry: unknown (type 0x25 arg 0x4) (ignoring) CANNOT LINK EXECUTABLE "./mytest2": cannot locate symbol "av_timecode_make_smpte_tc_string2" referenced by "/system/lib/libavformat.so"... linker: CANNOT LINK EXECUTABLE "./mytest2": cannot locate symbol "av_timecode_make_smpte_tc_string2" referenced by "/system/lib/libavformat.so"...
这个问题看起来是一个链接错误,指出"/system/lib/libavformat.so"库文件无法找到一个名为"av_timecode_make_smpte_tc_string2"的符号。这可能是由于库文件版本不兼容、缺少依赖项或编译参数不正确等原因引起的。您可以尝试更新库文件或添加缺少的依赖项来解决这个问题。另外,检查您的编译参数是否正确,并确保您的代码中没有任何语法错误或拼写错误。
阅读全文