Flutter项目修改NDK版本后出现Gradle构建BigDecimal异常
问题情况
构建Flutter应用时先遇到NDK版本不兼容报错:
Your project is configured with Android NDK 1, but the following plugin(s) depend on a different Android NDK version:
flutter_local_notifications requires Android NDK 27.0.12077973
Fix this issue by using the highest Android NDK version (they are backward compatible).
Add the following to D:\Coding\flutter\notification_test\android\app\build.gradle:android {
ndkVersion = "27.0.12077973"
...
}
按照提示修改build.gradle后,又出现Gradle语法异常:
Where:
Build file 'D:\Coding\flutter\notification_test\android\app\build.gradle' line: 11What went wrong:
A problem occurred evaluating project ':app'.No signature of method: java.math.BigDecimal.call() is applicable for argument types: (BigDecimal) values: [0.12077973]
Possible solutions: scale(), add(java.math.BigDecimal), max(java.math.BigDecimal), wait(), abs(), ulp()
- Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.BUILD FAILED in 5s
Error: Gradle task assembleDebug failed with exit code 1
解决方案
1. 修正build.gradle中的NDK版本写法
报错核心是你可能没给NDK版本号加双引号,Gradle会把不带引号的27.0.12077973当成数值解析,导致计算错误。打开android/app/build.gradle文件,确保NDK版本号被双引号包裹:
android { ndkVersion = "27.0.12077973" // 保留文件中其他原有配置 }
2. 确认已安装对应版本的NDK
如果本地没有这个版本的NDK,需要先安装:
- 打开Android Studio,点击顶部工具栏的
Tools > SDK Manager - 切换到
SDK Tools标签,勾选右上角的Show Package Details - 找到
NDK (Side by side),展开后勾选27.0.12077973版本,点击Apply完成安装
3. 清理并重新构建项目
在项目根目录的终端中执行以下命令:
flutter clean flutter pub get
之后重新运行你的Flutter项目即可。
内容的提问来源于stack exchange,提问作者WellItzShiv

