使用CMake时如何在Gradle构建脚本中设置NDK路径?

5

我在网上看到的所有资料都说要在ANT构建属性文件中设置ndk.dir来解决Gradle报错“未配置NDK”,但是显然我不能这样做,因为我不使用ant,我使用的是Gradle+CMake。

以下是我的gradle脚本。我还很新手,正在尝试一步步弄清楚事情。我已经成功地在Gradle中构建了Java部分,但现在我无法集成CMake。

apply plugin: 'com.android.library'

android {
    compileSdkVersion 17
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 17

        ndk {
            moduleName "UI"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    lintOptions {
        abortOnError false
    }

    externalNativeBuild {
        cmake {
            path '../../CMakeLists.txt'
        }
    }
}

我想知道在哪里可以指定NDK路径?我已经定义了一个名为ANDROID_NDK的环境变量。CMake 3.7使用它来查找NDK的位置。为什么android gradle脚本没有使用它?由于我没有使用ant,应该采用什么正确的方式?

注意:我首先尝试通过gradle build命令在Android Studio之外的命令行上构建项目。我收到的错误信息是:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':Core:UI'.
> NDK not configured.
Download it with SDK manager.)
1个回答

4
你可以通过选择 文件->项目结构 菜单项在Android Studio中指定NDK的路径。
然后,您应该会看到“项目结构设置”对话框,在其中可以指定NDK位置。
您在此处输入的值将修改local.properties文件中的ndk.dir值,您可以在下面的图像中看到它的背景:

enter image description here


1
我是否错误地假设local.properties是一个Ant特定的构建文件?因为现在它似乎不是,而是AS通用的设置文件。此外,我如何使用环境变量在版本控制中设置它?每个人都必须手动设置吗? - void.pointer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接