7

我被错误困在 curl 的编译中:

$ndk-build
Android NDK: Building for application 'curl' 
Android NDK: Trying to define local module 'curl' in sources/curl//jni/Android.mk. 
Android NDK: But this module was already defined by sources/curl//jni/Android.mk. 
build/core/build-module.mk:34: *** Android NDK: Aborting. . Stop.

任何人都可以提供您用于编译依赖项的过程吗?

4

3 回答 3

1

尝试将预编译的静态库包含到 NDK 项目中时,我遇到了类似的错误。我通过编辑我的项目的 Android.mk 文件来修复它,将该行移动$(call import-module,<MY_MODULE_NAME>)到文件的最末尾(在 之后include $(BUILD_SHARED_LIBRARY))。

于 2012-04-05T05:05:40.497 回答
0

在我的例子中,我添加了一个需要 gnustl_shared 的共享库,所以我将它添加到我的 Android.mk 文件中:

include $(CLEAR_VARS)
LOCAL_MODULE := libgnustl_shared
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_STATIC_LIBRARY)
LOCAL_SRC_FILES := $(LOCAL_PATH)/../../native_libs/$(TARGET_ARCH)/libgnustl_shared.so
include $(PREBUILT_SHARED_LIBRARY)

我遇到的冲突是这样的:

Android NDK:尝试在 jni/Android.mk 中定义本地模块“gnustl_shared”。
Android NDK:但是这个模块已经被 c:/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/Android.mk 定义了。

原因是因为我已经将它用作静态库。这是在 Application.mk 中:

APP_STL := gnustl_static

解决方案是将其更改为APP_STL := gnustl_shared,然后LOCAL_MODULE := libgnustl_shared从 Android.mk 中删除该部分。

于 2015-07-31T08:58:02.550 回答
0

我遇到了同样的问题,因为我使用了错误的命令。

在 Android.mk 目录中,我使用了“ ndk-build -f Android.mk”,这是导致问题的原因
Android NDK: Trying to define local module 'SRC' in Android.mk.
Android NDK: But this module was already defined by ...

但是当我输入“ ndk-build”时,构建成功!

于 2017-08-10T08:53:02.773 回答