使用System.loadLibrary时出现错误“找不到符号”

时间:2019-07-05 08:39:10

标签: java android hal

我使用System.loadLibrary来加载*.so文件,但出现此错误:

  

java.lang.UnsatisfiedLinkError:dlopen失败:无法找到符号   “ _ZN7android4base10LogMessageC1EPKcjNS0_5LogIdENS0_11LogSeverityES3_i”   被“ /data/app/com.xx.xx-   2LZ9X_IvwSNdsAL5OnmZ_w == / lib / arm64 / libhidlbase.so“

这可能导致什么?你能帮我吗?

我还编写了Android源代码来获取vts案例,当我在手机上运行二进制测试文件时,我也遇到了这个问题。

1 个答案:

答案 0 :(得分:0)

好像您尚未链接必需的目标库文件“ log”。您需要将日志库添加为* .so文件的链接库。如果您使用的是CMake,则可以在CMakeListLists文件中添加类似的内容-

find_library( # Sets the name of the path variable.
              log-lib

              # Specifies the name of the NDK library that
              # you want CMake to locate.
              log )


target_link_libraries( # Specifies the target library.
                       your_so_file_name

                       # Links the target library to the log library
                       # included in the NDK.
                       ${log-lib} )

此示例说明了here