无法解析 Flutter 应用程序的 android/app/build.gradle 文件中的符号 GradleException
Posted
技术标签:
【中文标题】无法解析 Flutter 应用程序的 android/app/build.gradle 文件中的符号 GradleException【英文标题】:Cannot resolve symbol GradleException in Flutter application's android/app/build.gradle file 【发布时间】:2021-11-20 06:42:14 【问题描述】:我有一个小的 Flutter 应用,androidStudio(Arctic Fox 2020.3.1 Patch 2)抱怨以下错误
在 android/app/build.gradle:
无法解析符号“GradleException”
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.5.1, on macOS 11.6 20G165 darwin-x64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for ios and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 2020.3)
[✓] IntelliJ IDEA Ultimate Edition (version 2021.2.2)
[✓] Connected device (3 available)
• No issues found!
我尝试了目前在网上找到的建议,例如定义 SDK(已经定义,更改或删除它并重新设置没有帮助)。
偶尔,我也得到了
-
在 android/app/build.gradle 中:
无法解析符号“属性”
-
在 android/settings.gradle 中:
无法解析符号“文件” 无法解析符号“属性”
编辑
这是 build.gradle 的内容。 它或多或少是用flutter create生成的
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists())
localPropertiesFile.withReader('UTF-8') reader ->
localProperties.load(reader)
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null)
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null)
flutterVersionCode = '1'
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null)
flutterVersionName = '1.0'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android
compileSdkVersion 30
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
kotlinOptions
jvmTarget = '1.8'
lintOptions
abortOnError false
sourceSets
main.java.srcDirs += 'src/main/kotlin'
defaultConfig
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "org.myorg.myapp"
minSdkVersion 21
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
buildTypes
release
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
flutter
source '../..'
dependencies
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// implementation 'com.google.android.gms:play-services-ads:20.4.0'
【问题讨论】:
发布你的 build.gradle @JustInCoding 我把它放在问题中。 这能回答你的问题吗? what is causing "cannot resolve symbol GradleException" in a flutter project? 【参考方案1】:你的问题可以通过导入类GradleException
来解决。只需添加此代码import org.gradle.api.GradleException
。如果问题仍然存在,您可能需要重新安装 Gradle。你可以这样做:-
使缓存无效并重新启动(推荐)。
在gradle-wrapper.properties文件中,在distribution URL中,把版本改成最新支持的版本,我用的是7.1.1
如果问题只出在一个项目上,创建一个新的 Flutter 项目,并将你的类文件放在新项目中,因为会生成一个新的 build.gradle,它是由于 gradle 文件损坏或同步错误而发生的。
【讨论】:
无法解析符号'gradle' 已修复,立即尝试。 我在 gradle 包装器中有 7.2。使缓存无效并重新启动也不起作用。我的 Flutter 项目比较多,只有这个有这个问题,所以不是 AndroidStudio 或 Gradle 的问题。 如果问题只出在一个项目上,创建一个新的 Flutter 项目,并将你的类文件放在新项目中,因为会生成一个新的 build.gradle,这是由于损坏的 gradle 文件而发生的或错误的同步以上是关于无法解析 Flutter 应用程序的 android/app/build.gradle 文件中的符号 GradleException的主要内容,如果未能解决你的问题,请参考以下文章
无法解析 Flutter 应用程序的 android/app/build.gradle 文件中的符号 GradleException
升级flutter后创建方法通道-无法解析方法getFlutterView()