【发布时间】: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 的新手。
【问题讨论】:
-
This may come from a current NDK bug on Windows, when there is only one source file to compile. You only need to add one empty source to make it work again.来自ph0b.com/android-studio-gradle-and-ndk-integration
标签: android-ndk android-gradle-plugin