gpt4 book ai didi

java - 任务 ':app:compileDebugNdk' 执行失败无法运行此命令 ndk-build.cmd

转载 作者:搜寻专家 更新时间:2023-10-30 19:48:40 25 4
gpt4 key购买 nike

Error:Execution failed for task ':app:compileDebugNdk'.

com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:\Program Files\ADT\sdk\android-ndk\ndk-build.cmd NDK_PROJECT_PATH=null

Error Code:
1

这是我在 android studio 上尝试对我的项目运行 make 时得到的输出。我在 android studio 1.0SDK 构建工具 24.0 但目标 API 14

这是我的 Android.mk 文件的样子

 LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := Main
LOCAL_SRC_FILES := Main.cpp
LOCAL_LDLIBS := -llog -ljnigraphics -lz -landroid
LOCAL_SHARED_LIBRARIES := libavformat libavcodec libswscale libavutil

include $(BUILD_SHARED_LIBRARY)
$(call import-module,ffmpeg/android/arm)

这是我的 application.mk 文件的样子

APP_ABI := armeabi
#APP_ABI := armeabi-v7a
APP_PLATFORM := android-14

最佳答案

错误:任务 ':app:compileDebugNdk' 执行失败。

表示 gradle android 插件正在尝试调用 ndk-build 本身来编译您的源代码。您应该在日志窗口中获得比错误代码更多的详细信息。

无论如何,目前它使用自动生成的 Makefile 并忽略您的 Makefile 来执行此操作,因为您需要集成 ffmpeg,所以这是行不通的。

为了克服这个问题,您应该禁用插件的自动 ndk 集成并使其使用标准的 libs 位置来获取您的 .so 文件:

sourceSets.main {
jniLibs.srcDir 'src/main/libs'
jni.srcDirs = [] //disable automatic ndk-build call
}

您可以从那里自己调用 ndk-build,或者让 gradle 为您调用它:

import org.apache.tools.ant.taskdefs.condition.Os

// call regular ndk-build(.cmd) script from app directory
task ndkBuild(type: Exec) {
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
commandLine 'ndk-build.cmd', '-C', file('src/main').absolutePath
} else {
commandLine 'ndk-build', '-C', file('src/main').absolutePath
}
}

tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn ndkBuild
}

有关这一切原因的更多信息,您可以查看此 gist和我的 blog post .

关于java - 任务 ':app:compileDebugNdk' 执行失败无法运行此命令 ndk-build.cmd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27453085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com