Android Studio构建问题:从android-ndk-r27c到 android-ndk-r29

移动开发 2026-07-09

我在使用NDK设置Android时有点迷茫。

我使用的是Gradle插件版本7.2.2和 Gradle版本7.4。所以我应该能够在 build.gradle 文件中使用ndkDir,只要在 local.properties 文件中完成设置,并且

-DCMAKE_C_COMPILER=C:\\android-ndk-r27c\\t
-DCMAKE_CXX_COMPILER=C:\\\\android-ndk-r27c\\

build.gradle

并且我使用

externalNativeBuild { cmake {path "CMakeLists.txt"} }

cmake_minimum_required(VERSION 3.3.0)

,并且我在androidSDK/cmake目录下安装了最新版的CMake 4.1.2。

现在我已经下载了最新版的android-ndk-r29,并把 ndkDirlocal.properties 中改为新的NDK,并把 CMAKE_C_COMPILER 改为新的NDK。

在构建我的APK时,我遇到了以下错误:

A problem occurred evaluating project ':app'.

\> NDK is not installed

直到现在,我一直使用ndkDir来更新或切换NDK版本,使用Gradle版本7.4进行测试。但这对android-ndk-r29来说并不奏效。我执行过“invalid chache”,但错误仍然一样。

所以看起来似乎有些东西已经改变,我也不清楚到底是什么以及为什么会这样。

解决方案

Dont use ndk.dir in local.properties, it was deprecated.

Use this in module build.gradle:

android {
    ndkVersion "29.0.14206865"

    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
}

https://developer.android.com/studio/projects/configure-agp-ndk?language=agp4-1

Androids docs recommend android.ndkVersion for AGP 4.1+, with ndkPath only for special custom path cases. Android Studio installs NDKs under android-sdk/ndk/. For r29 actual version is 29.0.14206865, not just r29.

You can install r29 using:

sdkmanager --install "ndk;29.0.14206865"

If ndk was unpacked to C:\android-ndk-r29, use ndkPath instead:

android {
    ndkPath "C:/android-ndk-r29"
}

Also, you should not need to pass explicitly: -DCMAKE_C_COMPILER / -DCMAKE_CXX_COMPILER, AGP/cmake should handle it for you.

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章