【问题标题】:"No rule to make target" when compiling NDK sources on Windows with Gradle使用 Gradle 在 Windows 上编译 NDK 源时“没有规则来制作目标”
【发布时间】:2014-04-23 08:11:06
【问题描述】:

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

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
  • NDK r9d for Windows x64

如果有任何帮助,我将不胜感激。我对 gradle 和 GNU 构建工具有一些经验,但我是 Android 和 NDK 的新手。

【问题讨论】:

标签: android-ndk android-gradle-plugin


【解决方案1】:

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

我已经填写了一份包含更多信息的错误报告:https://code.google.com/p/android/issues/detail?id=66937

【讨论】:

  • 好像还在用Android Studio 1.1,gradle plugin 1.1和ndk r10-d
  • 2015 年 4 月 7 日提交的修复。:)
  • Android 2.0 beta 4,同样的问题,同样的解决方案。谢谢 ph0b!
【解决方案2】:

只要去终端写

1: cd your_path_to\src\main\jni

2:ndk 构建

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-02
    • 2020-09-21
    • 2011-06-02
    • 2020-01-30
    • 1970-01-01
    • 2013-04-11
    相关资源
    最近更新 更多