Skip to content

NDK source.properties 缺失错误解决方案 ​

问题描述 ​

在更新 Android Studio 到 4.1 版本后,许多开发者遇到了以下构建错误:

Execution failed for task ':app:stripDebugDebugSymbols'.
NDK at ~/Library/Android/sdk/ndk-bundle did not have a source.properties file

这个错误表明 Android NDK(Native Development Kit)安装存在问题,特别是缺少 source.properties 文件,该文件用于标识 NDK 的版本信息。

解决方案概览 ​

INFO

根据问题根源,解决方案主要分为以下几类:

  1. 安装或重新安装正确的 NDK 版本
  2. 清理无效的 NDK 目录和配置
  3. 正确配置 NDK 版本和路径

解决方案 ​

方法一:通过 Android Studio 安装正确 NDK 版本 ​

逐步安装指南
  1. 打开 Android Studio
  2. 进入 File → Settings (Windows/Linux) 或 Preferences (Mac)
  3. 导航到 Appearance & Behavior → System Settings → Android SDK
  4. 选择 SDK Tools 标签页
  5. 勾选 NDK (Side by side) 并点击右下角的 Show Package Details
  6. 选择一个稳定的 NDK 版本(推荐 26.1.10909125)
  7. 点击 Apply 和 OK 开始安装

WARNING

请注意,Expo 和某些 React Native 项目可能与 NDK 27+ 版本存在兼容性问题,建议使用较稳定的 NDK 26 版本。

方法二:清理无效的 NDK 目录 ​

如果 NDK 安装过程中因磁盘空间不足或其他原因中断,可能会导致 NDK 目录不完整:

bash
# 删除有问题的 NDK 版本目录
cd $ANDROID_HOME/ndk
rm -rf 25.1.8937393  # 替换为错误中显示的版本号

或者删除整个 ndk-bundle 目录(如果存在):

bash
rm -rf $ANDROID_HOME/ndk-bundle

方法三:配置正确的 NDK 版本 ​

在 app/build.gradle 文件中指定正确的 NDK 版本:

groovy
android {
    compileSdkVersion 30
    ndkVersion "22.1.7171670"  // 使用实际安装的版本
}

方法四:更新 local.properties 文件 ​

从 android/local.properties 文件中移除已弃用的 ndk.dir 配置行:

# 删除或注释掉这行
# ndk.dir=~/Library/Android/sdk/ndk-bundle

或者如果确实需要指定 NDK 路径,确保路径正确:

ndk.dir=/Users/username/Library/Android/sdk/ndk/26.1.10909125/android-ndk-r26b

TIP

较新的 NDK 版本(如 26.1.10909125)在版本目录内还有一个 android-ndk-r26b 子目录,确保路径指向实际包含 source.properties 文件的目录。

方法五:接受 Android 许可证 ​

对于 Flutter 项目,有时需要接受 Android 许可证:

bash
flutter doctor --android-licenses

按 y 键接受所有许可证协议。

方法六:清理和重建项目 ​

bash
# 对于 Flutter 项目
flutter clean

# 对于普通 Android 项目
cd android
./gradlew clean

推荐配置 ​

当前推荐的稳定 NDK 版本配置:

groovy
android {
    compileSdkVersion 33
    ndkVersion "26.1.10909125"  // 稳定版本,兼容性好
}

故障排除流程图 ​

总结 ​

NDK source.properties 文件缺失错误通常由以下原因引起:

  • NDK 安装不完整或中断
  • NDK 版本配置不正确
  • 使用了已弃用的配置方式

通过安装正确的 NDK 版本、清理无效目录和更新项目配置,可以解决此问题。建议始终通过 Android Studio 的 SDK 管理器安装 NDK,并在 build.gradle 中明确指定 NDK 版本,而不是在 local.properties 中设置路径。

重要提示

避免手动复制 source.properties 文件到其他目录,这可能导致更复杂的版本冲突问题。始终使用官方安装和配置方法。