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
根据问题根源,解决方案主要分为以下几类:
- 安装或重新安装正确的 NDK 版本
- 清理无效的 NDK 目录和配置
- 正确配置 NDK 版本和路径
解决方案
方法一:通过 Android Studio 安装正确 NDK 版本
逐步安装指南
- 打开 Android Studio
- 进入
File
→Settings
(Windows/Linux) 或Preferences
(Mac) - 导航到
Appearance & Behavior
→System Settings
→Android SDK
- 选择
SDK Tools
标签页 - 勾选
NDK (Side by side)
并点击右下角的Show Package Details
- 选择一个稳定的 NDK 版本(推荐 26.1.10909125)
- 点击
Apply
和OK
开始安装
WARNING
请注意,Expo 和某些 React Native 项目可能与 NDK 27+ 版本存在兼容性问题,建议使用较稳定的 NDK 26 版本。
方法二:清理无效的 NDK 目录
如果 NDK 安装过程中因磁盘空间不足或其他原因中断,可能会导致 NDK 目录不完整:
# 删除有问题的 NDK 版本目录
cd $ANDROID_HOME/ndk
rm -rf 25.1.8937393 # 替换为错误中显示的版本号
或者删除整个 ndk-bundle 目录(如果存在):
rm -rf $ANDROID_HOME/ndk-bundle
方法三:配置正确的 NDK 版本
在 app/build.gradle
文件中指定正确的 NDK 版本:
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 许可证:
flutter doctor --android-licenses
按 y
键接受所有许可证协议。
方法六:清理和重建项目
# 对于 Flutter 项目
flutter clean
# 对于普通 Android 项目
cd android
./gradlew clean
推荐配置
当前推荐的稳定 NDK 版本配置:
android {
compileSdkVersion 33
ndkVersion "26.1.10909125" // 稳定版本,兼容性好
}
故障排除流程图
总结
NDK source.properties
文件缺失错误通常由以下原因引起:
- NDK 安装不完整或中断
- NDK 版本配置不正确
- 使用了已弃用的配置方式
通过安装正确的 NDK 版本、清理无效目录和更新项目配置,可以解决此问题。建议始终通过 Android Studio 的 SDK 管理器安装 NDK,并在 build.gradle
中明确指定 NDK 版本,而不是在 local.properties
中设置路径。
重要提示
避免手动复制 source.properties
文件到其他目录,这可能导致更复杂的版本冲突问题。始终使用官方安装和配置方法。