我在编译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.
任何人都可以提供用于编译依赖项的过程吗?
答案 0 :(得分:1)
尝试将预编译的静态库包含到NDK项目中时出现了类似的错误。我通过编辑项目的Android.mk文件来修复它,将行$(call import-module,<MY_MODULE_NAME>)
移到文件的最后(include $(BUILD_SHARED_LIBRARY)
之后)。
答案 1 :(得分: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: Trying to define local module 'gnustl_shared' in jni/Android.mk. Android NDK: But this module was already defined by c:/android-ndk-r10d/sources/cxx-stl/gnu-libstdc++/Android.mk.
原因是因为我已经将它用作静态库。这是在Application.mk:
APP_STL := gnustl_static
解决方法是将其更改为APP_STL := gnustl_shared
,然后从Android.mk中删除LOCAL_MODULE := libgnustl_shared
部分。
答案 2 :(得分:0)
我遇到了同样的问题,因为我使用了错误的命令。
在Android.mk目录中,我使用&#34; ndk-build -f Android.mk
&#34;,这导致了问题
Android NDK: Trying to define local module 'SRC' in Android.mk.
Android NDK: But this module was already defined by ...
但是当我输入&#34; ndk-build
&#34;时,构建成功了!