Android ndk &引用;“没有制定目标的规则”;使用Gradle在Windows上编译NDK源代码时

Android ndk &引用;“没有制定目标的规则”;使用Gradle在Windows上编译NDK源代码时,android-ndk,android-gradle-plugin,Android Ndk,Android Gradle Plugin,我正在尝试一个基本的Android应用程序,其中包含一个从源代码构建的NDK库。我在构建时遇到以下错误: gradlew assembleArm :myapp:compileArmDebugNdk make.exe: *** No rule to make target `C:\Projects\MyApp\myapp\build\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/process/C_\Projects\MyApp\myapp\src\

我正在尝试一个基本的Android应用程序,其中包含一个从源代码构建的NDK库。我在构建时遇到以下错误:

gradlew assembleArm
:myapp:compileArmDebugNdk
make.exe: *** No rule to make target
`C:\Projects\MyApp\myapp\build\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/process/C_\Projects\MyApp\myapp\src\main\jni', needed by `C:\Projects\MyApp\myapp\build\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/process/C_\Projects\MyApp\myapp\src\main\jni\process.o'.  Stop.
:myapp:compileArmDebugNdk FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':myapp:compileArmDebugNdk'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    C:\android-ndk-r9d\ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Projects\MyApp\myapp\build\ndk\arm\debug\Android.mk APP_PLATFORM=android-18 NDK_OUT=C:\Projects\MyApp\myapp\build\ndk\arm\debug\obj NDK_LIBS_OUT=C:\Projects\MyApp\myapp\build\ndk\arm\debug\lib NDK_DEBUG=1 APP_STL=stlport_static APP_ABI=armeabi-v7a
目标路径在我看来很奇怪。gradle生成的makefile如下所示:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE := process
LOCAL_CFLAGS := -DANDROID_NDK
LOCAL_SRC_FILES := \
C:\Projects\MyApp\myapp\src\main\jni\process.cpp \

LOCAL_C_INCLUDES += C:\Projects\MyApp\myapp\src\main\jni
LOCAL_C_INCLUDES += C:\Projects\MyApp\myapp\src\arm\jni
LOCAL_C_INCLUDES += C:\Projects\MyApp\myapp\src\debug\jni
LOCAL_C_INCLUDES += C:\Projects\MyApp\myapp\src\armDebug\jni

include $(BUILD_SHARED_LIBRARY)
我正在使用

  • gradle插件0.9
  • 适用于Windows x64的NDK r9d

我非常感谢你的帮助。我对gradle和GNU构建工具有一些经验,但我对Android和NDK还不熟悉。

就像Selvin说的,只要添加另一个源文件就可以了。即使是空的也可以


我已经用更多信息填写了一份bug报告:

只需转到终端并编写

1:将您的\u路径\u cd到\src\main\jni


2:ndk build

这可能来自Windows上当前的ndk错误,当时只有一个源文件要编译。您只需添加一个空源代码即可使其再次工作。
from似乎仍然在使用Android Studio 1.1、gradle插件1.1和ndk r10 dFix(于2015年4月7日提交):)Android 2.0 beta 4,同样的问题,同样的解决方案。谢谢ph0b!