我正在尝试在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设置当前目录?
最佳,
答案 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 oneinclude $(LOCAL_PATH)/celt_sources.mk
这样,构建不依赖于ndk-build
命令的工作目录。