切换到较新版本的 android ndk 时未定义的模块

Undefined modules when switching to a newer version of android ndk

我正在尝试从 ndk-r11c 升级到 ndk-r14。当我 运行 r14 时,我得到一个错误

Android NDK: Module myJNI depends on modules: png jpeg log

在我的 Android 中: LOCAL_SHARED_LIBRARIES := png jpeg 日志

假设您没有复制完整的错误消息,它实际上是 "depends on undefined modules",请检查 release notes:

Module builds will now fail if they have any missing dependencies. To revert to the old behavior, set APP_ALLOW_MISSING_DEPS=true. See https://github.com/android-ndk/ndk/issues/208.

liblog 不应在 LOCAL_SHARED_LIBRARIES 中。你想要 LOCAL_LDLIBS := -llog 代替。虽然,实际上,如果此警告已触发,但您的项目正在构建,那么您无论如何都不会使用它。

libjpeglibpng 似乎没有在您的项目中定义。只是删除它们,因为它们无论如何都无法使用。

我也遇到了这个错误,但原因不同。

构建环境托管在Windows,正在构建的项目位于深层目录中。由于 Windows 路径大小限制,无法找到必要的模块。

所以我解决了在高级路径(例如 D:\)中构建项目的问题,以确保路径大小不会成为问题。

OpenCV Android SDK 3.1 缺少 opencv_legacy 模块时遇到类似错误

/home/jenkins/android-ndk-r15c/build/core/build-binary.mk:688: Android NDK: Module TestProject depends on undefined modules: opencv_legacy    

将以下行添加到 src/main/jni/Application.mk 解决问题,谢谢@Dan Albert

APP_ALLOW_MISSING_DEPS=true