如何将一个android.mk模块导入android中的另一个android.mk模块?

如何将一个android.mk模块导入android中的另一个android.mk模块?,android,android-ndk,Android,Android Ndk,在应用程序中的Android中,我想将一个Android.mk文件导入应用程序中的另一个Android.mk文件 为此,我使用了一个android.mk文件,该文件将导入同一项目的另一个模块中 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := EDSDKModule LOCAL_SRC_FILES :=libEDSDK.a LOCAL_ARM_MODE := arm TARGET_PLATFORM:=androi

在应用程序中的Android中,我想将一个Android.mk文件导入应用程序中的另一个Android.mk文件

为此,我使用了一个android.mk文件,该文件将导入同一项目的另一个模块中

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := EDSDKModule
LOCAL_SRC_FILES :=libEDSDK.a
LOCAL_ARM_MODE := arm
TARGET_PLATFORM:=android-8
TARGET_ARCH_ABI:=armeabi
TARGET_ABI:=$(TARGET_PLATFORM)-$(TARGET_ARCH_ABI)
include $(PREBUILT_STATIC_LIBRARY)
并且主ANDROID.mk文件被写入

include C:\my_module\Android.mk
 LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := EDSK
LOCAL_MODULE_FILENAME := foo 
LOCAL_SRC_FILES := sample.c
LOCAL_STATIC_LIBRARIES := EDSDKModule
include $(BUILD_SHARED_LIBRARY)
LOCAL_ARM_MODE := arm
TARGET_PLATFORM:=android-8
TARGET_ARCH_ABI:=armeabi
TARGET_ABI:=$(TARGET_PLATFORM)-$(TARGET_ARCH_ABI)
$(call import-module,EDSDKModule)
但我在使用androidndk构建项目时遇到了这个错误


请就如何在项目中将一个模块导入android.mk文件的另一个模块提出一些解决方案

我猜问题在这里:

    $NDK_MODULE_PATH\C:\Final FOlder\final c\Mysetup\newworks\SimpleApp\jni\path1\Android.mk:
    /*here i have given directory path of android.mk file */
可能的错误:

  • 尝试清除路径中的空白:

    C:\Final FOlder\final c\ 
    
对这样的事情:

    C:\FInal_Folder\final_c\myotherdir\xyz.mk
  • 如果您使用的是绝对路径,如:

    C:\mypath\myotherdir\xyz.mk
    
然后您不必在它前面加上
$NDK\u模块路径
。只需使用上述绝对路径本身,即
C:\mypath\myotherdir\xyz.mk

  • 您需要在上述include语句前面添加一个
    include
    关键字:

    # comment : including my mk file here
    include C:\mypath\myotherdir\xyz.mk
    
  • 去掉include语句末尾的

所以你必须做一些类似的事情:

    include C:\mypath\myotherdir\xyz.mk

如果mk文件位于NDK本地文件夹中,则

    include $NDK_MODULE_PATH\mylocaldir\xyz.mk

希望这有帮助。干杯

我猜问题在这里:

    $NDK_MODULE_PATH\C:\Final FOlder\final c\Mysetup\newworks\SimpleApp\jni\path1\Android.mk:
    /*here i have given directory path of android.mk file */
可能的错误:

  • 尝试清除路径中的空白:

    C:\Final FOlder\final c\ 
    
对这样的事情:

    C:\FInal_Folder\final_c\myotherdir\xyz.mk
  • 如果您使用的是绝对路径,如:

    C:\mypath\myotherdir\xyz.mk
    
然后您不必在它前面加上
$NDK\u模块路径
。只需使用上述绝对路径本身,即
C:\mypath\myotherdir\xyz.mk

  • 您需要在上述include语句前面添加一个
    include
    关键字:

    # comment : including my mk file here
    include C:\mypath\myotherdir\xyz.mk
    
  • 去掉include语句末尾的

所以你必须做一些类似的事情:

    include C:\mypath\myotherdir\xyz.mk

如果mk文件位于NDK本地文件夹中,则

    include $NDK_MODULE_PATH\mylocaldir\xyz.mk

希望这有帮助。干杯

你试过了吗你试过了吗我在Android.mk文件****中使用了以下命令包括C:\my_module\Android.mk LOCAL_PATH:=$(调用我的目录)包括$(清除变量)LOCAL_module:=EDSK LOCAL_module:=foo LOCAL_SRC_文件:=sample.C LOCAL_静态_库:=libEDSDK.a包括$(构建共享_库)$(调用导入模块,EDSDKModule)**********但我得到了错误,即Android NDK:C:\my_module\Android.mk:在导入路径中找不到标记为“EDSDKModule”的模块Android NDK:您确定NDK_module\u path变量定义正确吗?jni/Android.mk:14:Android NDK:正在中止。停止Android NDK:你能告诉我,你从哪里复制了原始的“C:\my\u module\Android.mk”文件吗?因为您导入的Android.mk似乎正在查找以下模块:
libEDSDK.a、EDSDK、edsdkerors、EDSDKTypes
来自
$(本地路径)
。我建议您将包含导入的
Android.mk
libEDSDK.a
的原始目录中的所有内容复制到本地主Android.mk目录中。这应该可以解决问题。干杯在我的_模块文件夹中,我放置了项目中的Android.mk、EDSDk.h、edsdkerors.h EDSDKTypes.h和libEDSDl.a文件,在项目的jni文件夹中,我也放置了EDSDk.h,edsdkerors.h EDSDKTypes.h和libEDSDl.a文件,但问题仍然是一样的,可以解释更多关于NDK本地文件夹的信息抱歉,但我不明白,我现在将导入的Android.mk放在NDK本地文件夹中,我不明白这个“NDK本地文件夹”你能更新你问题中的新Android.mk吗?在现有内容下面添加一个部分,以便我可以查看整个Android.mk文件。我在Android.mk文件中使用了以下命令****include C:\my_module\Android.mk LOCAL_PATH:=$(调用我的目录)include$(清除变量)本地_模块:=EDSK本地_模块_文件名:=foo本地_SRC_文件:=sample.c本地_静态_库:=libEDSDK.a包含$(构建共享_库)$(调用导入模块,EDSDKModule)**********但我得到了错误,即Android NDK:C:\my_module\Android.mk:在导入路径中找不到标记为“EDSDKModule”的模块Android NDK:您确定NDK_module\u path变量定义正确吗?jni/Android.mk:14:Android NDK:正在中止。停止Android NDK:你能告诉我,你从哪里复制了原始的“C:\my\u module\Android.mk”文件吗?因为您导入的Android.mk似乎正在查找以下模块:
libEDSDK.a、EDSDK、edsdkerors、EDSDKTypes
来自
$(本地路径)
。我建议您将包含导入的
Android.mk
libEDSDK.a
的原始目录中的所有内容复制到本地主Android.mk目录中。这应该可以解决问题。干杯在我的_模块文件夹中,我放置了项目中的Android.mk、EDSDk.h、edsdkerors.h EDSDKTypes.h和libEDSDl.a文件,在项目的jni文件夹中,我也放置了EDSDk.h,edsdkerors.h EDSDKTypes.h和libEDSDl.a文件,但问题仍然是一样的,可以解释更多关于NDK本地文件夹的信息抱歉,但我不明白,我现在将导入的Android.mk放在NDK本地文件夹中,我不明白这个“NDK本地文件夹”你能更新你问题中的新Android.mk吗?在现有内容下面添加一个部分,以便我可以查看整个Android.mk文件。