这段代码是一个 Android NDK 的构建脚本,用于将 C/C++ 代码编译成动态库供 Android 应用调用。

首先,代码指定了 Android.mk 文件所在的目录为 'LOCAL_PATH'。

然后,通过 'include $(CLEAR_VARS)' 清除之前的 'LOCAL_变量',再定义一个新的模块 'LOCAL_MODULE',命名为 'hello'。

接着,指定了需要编译的源文件 'LOCAL_SRC_FILES',即 'prebuild/arm64-v8a/libhello.so'。

使用 'include $(PREBUILT_SHARED_LIBRARY)' 将该动态库链接到模块中。

接下来,设置库文件的输入目录 'NDK_APP_DST_DIR' 为 '../jniLibs/$(TARGET_ARCH_ABI)',即目标目录为 '../jniLibs/$(TARGET_ARCH_ABI)'。

再次使用 'include $(CLEAR_VARS)' 清除之前的 'LOCAL_变量',定义一个新的模块 'LOCAL_MODULE',命名为 'ndkbuild'。

指定了需要编译的源文件 'LOCAL_SRC_FILES',即 'com_example_hello_HelloWorld.cpp'。

将之前定义的 'hello' 动态库添加到 'LOCAL_SHARED_LIBRARIES' 中。

最后,使用 'include $(BUILD_SHARED_LIBRARY)' 将代码编译成动态库。

至于为什么导出的动态库会报错,可能是导出的路径不正确或者缺少依赖库。根据报错信息来看,系统找不到 'libhello.so' 库。你需要检查导出的路径是否正确,并且确保依赖库已经正确地被链接到动态库中。

Android NDK 构建脚本解释:导出动态库报错原因及解决方法

原文地址: https://www.cveoy.top/t/topic/Mnp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录