【问题标题】:How to specify directory for NDK_MODULE_PATH如何为 NDK_MODULE_PATH 指定目录
【发布时间】:2012-01-22 21:30:32
【问题描述】:

在过去的几个小时里,我在这个简单的任务上遇到了麻烦。

我的 Android 项目的根目录中有 ndk-modules 目录,我的 jni 文件夹的 Android.mk 中有以下目录

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
NDK_MODULE_PATH := $(LOCAL_PATH)/../ndk-modules
...
$(call import-module,mymodule)

当我构建 mk 文件时,我得到了

Android NDK: /MyApp/jni/Android.mk: Cannot find module with tag 'mymodule' in import path    
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    

我在这里做错了什么?如何正确指定路径?

更新:

规范是正确的。我的模块目录有问题。很抱歉造成混乱。

【问题讨论】:

    标签: android makefile android-ndk


    【解决方案1】:

    就我而言,我通过实现 NDK 搜索来修复它:

    $NDK_MODULE_PATH/module_name/Android.mk
    

    但我的“module_name”是一个 Eclipse 项目,Android.mk 位于:

    $NDK_MODULE_PATH/module_name/jni/Android.mk
    

    所以 NDK 找不到它。我通过以下方式修复了它:

    1. 将 module_name/jni/* 移动到“somewhere/module_name”。
    2. 在 Android.mk 中:

      $(call import-add-path, /path/to/somewhere)
      $(call import-module,module_name)
      

    【讨论】:

      【解决方案2】:

      NDK_MODULE_PATH 必须在您的路径中。我想在我的 Android.mk 文件中指定它,所以我在 import-module 行之前添加了这一行:

      $(call import-add-path,my_relative_path)
      

      【讨论】:

      • 你能解释一下 -add-path 和 my_relative_path 是什么意思
      • 赞这个$(call import-add-path, /home/bluemix/tmp/android-ffmpeg-tutorial01-master/jni) $(call import-module,ffmpeg-2.6.2/android/arm)
      • 检查以下实现。更有意义github.com/julienr/protobuf-android
      【解决方案3】:

      $(call import-module,mymodule) 会搜索$NDK_MODULE_PATH/mymodule,你可以将路径设置为项目的顶层或在ndk-modules下创建一个名为mymodule的文件夹

      【讨论】:

      • 如果您的 Android.mk 在 prj/jni 中,那么 $LOCAL_PATH/.. 应该是顶部。
      猜你喜欢
      • 2010-12-13
      • 2012-05-31
      • 1970-01-01
      • 2013-12-30
      • 2021-02-09
      • 1970-01-01
      • 2022-07-25
      • 2013-03-06
      相关资源
      最近更新 更多