Android Studio ndk-build无法找到文件

时间:2017-12-03 10:05:45

标签: android android-studio android-ndk opus

我正在尝试在Android Studio中编译OPUS。 当我从命令行调用ndk-build时,一切正常。 当我从Android Studio构建它时,它会失败。

我的app.gradle:

externalNativeBuild {
    ndkBuild {
        path 'src/main/jni/Android.mk'
    }
}

Android.mk有一些包括:

include celt_sources.mk

错误:

Error while executing process G:\ASDK\ndk-bundle\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=F:\TP2\ram\android\app\src\main\jni\Android.mk NDK_APPLICATION_MK=F:\TP2\ram\android\app\src\main\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=0 APP_PLATFORM=android-19 NDK_OUT=F:/TP2/ram/android/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT=F:\TP2\ram\android\app\build\intermediates\ndkBuild\release\lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}

为什么NDK_PROJECT_PATH为空?如何在调用ndk-build之前告诉Android Studio设置当前目录?

最佳,

1 个答案:

答案 0 :(得分:1)

您可能已按照this或类似解决方案为Android版本准备opus。像

这样的陈述
include celt_sources.mk

不是一个好习惯,因为它们会强制您在 Android.mk 文件所在的目录中运行ndk-build。以这种方式强制Android Studio工作并不难,将以下块添加到 build.gradle

android {
    defaultConfig {
        externalNativeBuild {
            ndkBuild {
                arguments '-C src/main/jni'
            }
        }
    }
}

但是,对于可以在WWW上找到的操作,可以使用 Android.mk 的许多其他版本中的一个更加清晰,例如:使用

this one
include $(LOCAL_PATH)/celt_sources.mk

这样,构建不依赖于ndk-build命令的工作目录。