【问题标题】:Android Studio ndk-build can't find filesAndroid Studio ndk-build 找不到文件
【发布时间】:2018-05-16 23:19:00
【问题描述】:

我正在尝试在 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 设置当前目录?

最好的,

【问题讨论】:

  • NDK_PROJECT_PATH=null 看起来很正常。实际错误是什么?
  • 编译失败,因为找不到MK文件。我通过将完整路径放在包含语句中暂时解决了它。

标签: android android-studio android-ndk opus


【解决方案1】:

您可能遵循this 或类似的解决方案来为 Android 构建准备作品。像

这样的语句
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 命令的工作目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2023-03-20
    • 2013-09-28
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 2019-09-11
    相关资源
    最近更新 更多