2

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

为此,我在一个 Andorid.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)

主要的 Andorid.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)

但我在使用 Android-NDk 构建项目时遇到了这个错误,即

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

4

1 回答 1

0

我猜问题出在这里:

    $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_MODULE_PATH. 只需使用上面的绝对路径本身,即C:\mypath\myotherdir\xyz.mk

  • 您需要include在上述包含语句前面有一个关键字:

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

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

    include C:\mypath\myotherdir\xyz.mk

或者

如果您在NDK 本地文件夹中有 mk 文件,那么

    include $NDK_MODULE_PATH\mylocaldir\xyz.mk

希望这可以帮助。干杯!

于 2012-06-26T04:57:53.533 回答