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

时间:2017-03-09 22:42:00

标签: android android-ndk java-native-interface shared-libraries

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

  

Android NDK:模块myJNI依赖于模块:png jpeg log

在我的Android制作中: LOCAL_SHARED_LIBRARIES:= png jpeg log

3 个答案:

答案 0 :(得分:6)

假设您没有复制完整的错误消息并且实际上说“取决于未定义模块”,请检查release notes

  

如果模块构建中缺少任何依赖项,则它们现在将失败。要恢复旧行为,请设置APP_ALLOW_MISSING_DEPS = true。请参阅https://github.com/android-ndk/ndk/issues/208

liblog不应该在LOCAL_SHARED_LIBRARIES中。您想要LOCAL_LDLIBS := -llog。实际上,虽然这个警告正在解雇,但你的项目正在建设中,但你还是没有使用它。

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

答案 1 :(得分:0)

我也遇到了这个错误,但出于其他原因。

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

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

答案 2 :(得分:0)

使用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