Java 如何在Cmake for Android中导入共享库
我一直在尝试使用CMake导入Android项目,但当我尝试导入这些库并使用terminal在Android上编译和执行程序时,我得到以下错误:Java 如何在Cmake for Android中导入共享库,java,android,qt,cmake,Java,Android,Qt,Cmake,我一直在尝试使用CMake导入Android项目,但当我尝试导入这些库并使用terminal在Android上编译和执行程序时,我得到以下错误: D/AndroidRuntime( 6162): Shutting down VM E/AndroidRuntime( 6162): FATAL EXCEPTION: main E/AndroidRuntime( 6162): Process: org.abc.project, PID: 6162 E/AndroidRuntime( 6162): **
D/AndroidRuntime( 6162): Shutting down VM
E/AndroidRuntime( 6162): FATAL EXCEPTION: main
E/AndroidRuntime( 6162): Process: org.abc.project, PID: 6162
E/AndroidRuntime( 6162): **java.lang.UnsatisfiedLinkError: dlopen failed: library "libcsoundandroid.so" not found**
E/AndroidRuntime( 6162): at java.lang.Runtime.loadLibrary(Runtime.java:371)
E/AndroidRuntime( 6162): at java.lang.System.loadLibrary(System.java:988)
E/AndroidRuntime( 6162): at org.qtproject.qt5.android.bindings.QtActivity.loadApp
我的CMakeLists.txt是:
这里abc是生成的可执行文件。列出的所有库都在同一个位置。你能帮我找出错误是什么吗?非常感谢您提供的任何帮助。属性导入位置应包含库文件的完整路径。这是明确写在该属性
要链接导入的库,请使用目标名称,而不是库文件:
# Correctly set property for imported library
set_property(TARGET csoundandroid PROPERTY IMPORTED_LOCATION
/home/ayush/csound-android-6.07.0/(...)/armeabi/libcsoundandroid.so
)
# And correctly link with it
set(LIBS1 csoundandroid)
target_link_libraries(abc ${LIBS1})
谢谢你的回复。我还可以使用add_库来完成它。我也将尝试上述解决方案:)
# Correctly set property for imported library
set_property(TARGET csoundandroid PROPERTY IMPORTED_LOCATION
/home/ayush/csound-android-6.07.0/(...)/armeabi/libcsoundandroid.so
)
# And correctly link with it
set(LIBS1 csoundandroid)
target_link_libraries(abc ${LIBS1})