如何在Android Studio中通过C++使用动态库?

fcy6dtqo  于 2023-11-19  发布在  Android
关注(0)|答案(1)|浏览(117)

我一直试图在我的android studio c++游戏活动项目中使用动态(共享)库,但我的项目无法成功打开共享库,并且我无法在线找到适合我的任何内容。共享库是从类型为 Shared Library的Visual Studio项目生成的.so文件(Android,IOS).我使用Android Studio版本17.0.6,和Visual Studio 2022版本17.7.6.我在Windows 11上.
到目前为止,我已经尝试在我的主文件夹中创建一个jniLibs文件夹,并将适当的文件夹(x86_64,arm 64-v8 a等),并将适当的.so文件放在里面。然后我将库加载到我的cmake.txt文件中,这可以工作,但是当我尝试在我的代码中加载库时,它无法加载库。我用来尝试加载库的代码如下:

add_library(libSharedLibrary SHARED IMPORTED)

set_target_properties(libSharedLibrary PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/../jniLibs/${ANDROID_ABI}/SharedLibrary.so)

个字符
目前,代码输出加载失败。我已经检查了路径是否正确,重新加载并重建了项目,并重新创建了共享库文件。我担心的另一点是Android Studio IDE似乎无法识别.so文件。我不确定这是否与我在使用DLL的Windows上有关,或者如果这意味着我不能使用这种类型的共享库。任何信息将不胜感激。请注意,我是一个初学者在Android Studio,所以详细的解释将不胜感激。

kqhtkvqz

kqhtkvqz1#

为了解决这个问题,我改变了

void* handle = dlopen("C:path/to/SharedLibrary.so", RTLD_LAZY);

字符串

void* handle = dlopen("SharedLibrary.so", RTLD_LAZY);


这允许编程以成功地加载共享库。

相关问题