提问人:user1884325 提问时间:2/22/2022 更新时间:2/22/2022 访问量:1729
如何将 .so 文件添加到 APK 中的 lib 文件夹?
How do I add .so file to lib folder in APK?
问:
如果我将以下内容添加到我的 cmakelists.txt 文件中:
add_library( # Sets the name of the library.
extralib
# Sets the library as a shared library.
MODULE
# Provides a relative path to your source file(s).
extra.cpp)
然后我构建了我的 Android 应用程序,然后 APK 的“lib”文件夹中将 libextralib.so。在上面的例子中,“extralib”是从源代码文件(extra.cpp)构建的。如何使用预构建的 .so 文件作为 extralib 的“源”?
我试过了:
add_library( # Sets the name of the library.
extralib
# Sets the library as a shared library.
MODULE
# Provides a relative path to your source file(s).
extra.so)
但 Android Studio 不喜欢这样。我收到以下错误:
CMake 错误:CMake 无法确定目标的链接器语言:extralib
我正在尝试弄清楚如何将额外的 .so 文件添加到 APK lib 文件夹(它们将在运行时动态加载),其中一些 .so 文件是从源代码构建的,而另一些是预构建的 .so 文件。我知道我可以创建一个 jniLibs 文件夹并将我所有的 .so 文件塞进该文件夹,但我不想这样做。我希望在cmakelists.txt中定义所有内容。
答:
1赞
Gerry
2/22/2022
#1
此方法仍然有效:
add_library(lib_extra SHARED IMPORTED)
set_target_properties(lib_extra PROPERTIES IMPORTED_LOCATION
${your-extra-lib-location}/${ANDROID_ABI}/libextra.so)
target_link_libraries(${project-lib-name} lib_extra)
确保计划包含在应用中的每个 ABI 都有一个二进制文件(extra.so)。构建APK后,您可以使用Studio检查它们是否存在(或只是解压缩APK文件)。build -> Analyze APK...
评论