【问题标题】:First Flutter App error: cannot resolve symbol "Properties"第一个 Flutter App 错误:无法解析符号“属性”
【发布时间】:2019-11-18 04:13:51
【问题描述】:

我按照 Flutter 文档中的步骤,尝试在 Intellij IDEA 中构建我的第一个 Flutter 应用程序。当我尝试运行它时,我的 JAVA_HOME 变量出现错误。并且关于无法解析 build.gradle 文件中的符号“Properties”的错误。我真的不知道该怎么办。

这是我在控制台窗口中显示的错误信息。

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Finished with error: ProcessException: Process 
"F:\untitled\android\gradlew.bat" exited abnormally:

ERROR: JAVA_HOME is set to an invalid directory: F:\Google download\jdk- 
10.0.1_windows-x64_bin.exe

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
  Command: F:\untitled\android\gradlew.bat -v

其实我的 JAVA_HOME 变量没什么问题,我把它设置到了正确的目录:C:\Program Files (x86)\Java\jdk1.8.0_131。

我运行上面显示的命令“F:\untitled\android\gradlew.bat -v”,它似乎更新了gradle版本,但错误没有解决。

这是 build.gradle 文件中的代码。

def localProperties = new Properties() 
//there will be a highlight on Properties indicates that 'cannot resolve symbol "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.")
//the same as the Properties on GradleException
}

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 from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.untitled"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    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 {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

【问题讨论】:

  • 您解决了这个问题吗?我刚刚升级了 Flutter,并且在我的应用程序级 build.gradle 文件中遇到了 Properties 和 GradleException 相同的问题。我正在使用 Android Studio。添加 maven 存储库并没有为我解决这个问题。
  • confluence.atlassian.com/doc/… 只需检查您的 JDK 安装位置,然后按照上面的链接进行操作

标签: intellij-idea flutter


【解决方案1】:

首先点击文件部分然后 file

在那之后我们有项目结构部分 click on the project structure 之后转到那个项目并将项目 sdk 更改为最新(如果它为 null 或过时),因为我已将我的更新为 30

project sdk to change here 如有必要,更改 sdk 并应用更改 之后转到项目下的问题,如果它显示一些错误,只需点击修复它,你可以看到我的fix it 之后转到 app/build.gradle 然后将 GradleException 更改为 FileNOtFoundExcetion 现在你可以在保存所有错误后继续使用 vanishFileNotFoundException changes

【讨论】:

    【解决方案2】:

    它对我有用(android studio 版本:4.1,flutter 版本:2.5)

    1. 打开 pubspec.yaml -> 立即运行“pub get”
    2. 转到文件 -> 使 Chache 无效/重新启动

    【讨论】:

      【解决方案3】:

      无法解析符号“属性”
      无法解析符号 'GradleException'

      甚至在打开清单文件时出现许多错误的情况下。

      这不是问题,您无需执行任何操作。显示这些是因为 IDE 在正常模式下没有检测到它们。只需“Open for Editing in Android Studio”(您可以在 TOP-RIGHT 上找到它)然后选择“New Window”,您会发现一切正常。

      【讨论】:

        【解决方案4】:

        这不是错误,不要从 GradleException 和 properties() 方法中删除新关键字,只需重新启动您的 android studio,您的问题就会得到解决。

        【讨论】:

          【解决方案5】:

          这个问题是由于没有指向正确的 Android API 平台

          解决方案:

          在 Android Studio 中 文件 > 项目结构

          1. 现在会弹出一个窗口
          2. 在其中选择项目设置/项目
          3. 确保将 Project SDK 设置为下图中提到的最新平台

          1. 接下来选择项目设置/模块子标签
          2. 在第 3 步中选择最新的 Android SDK

          1. 最后将 GradleException() 替换为 FileNotFoundException(),如下所述

          【讨论】:

          • 如果有人想要这个问题的视频链接youtube.com/watch?v=NJp14BeTjAs
          • 在 Android studio 4.1 中,我找不到项目结构设置........谁能指导我?
          • @DharmikThakkar 您可以在文件选项卡中找到项目结构设置。
          • 这是最好的解决方案,非常简单,谢谢!
          • 我遵循了这个,但仍然无法正常工作。 new 这个词仍然会引起问题。即使删除它也没有帮助
          【解决方案6】:

          更新:2020 年 10 月 15 日。

          我在 Android Studio 版本 4.1(今天重新安装)中运行 Flutter 版本 1.12.13+hotfix9,运行时版本为 1.8.0_242-release-1644....在 Windows 10,amd64 上。

          我通过删除“Properties”和“GradleException”之前的“new”一词修复了项目级别和应用程序级别的 gradle 构建文件,并且在这两个文件中都删除了 Studio 错误消息。

          【讨论】:

          • 这只是reaffirming a previous answer。请支持现有答案,而不是重复它们。唯一的区别是特定版本,如果行为更改与该特定版本有关,我只希望它是相关的。
          【解决方案7】:

          对我来说,只是在 Properties 和 GradleException 之前删除 new 它已经解决了。

          • Flutter version 1.21.0-10.0.pre.55 | Master Channel |
          • Dart version 2.10.0 (build 2.10.0-11.0.dev)
          • Android Studio 4.0.1
          

          这是 build.gradle 中的第一行“包含更改”

          def localProperties = 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 GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
          }
          

          。 . . . . . . .

          【讨论】:

            【解决方案8】:

            它对我有用:

            1. 文件>项目结构(Command + ;)>在项目设置/项目下>将项目SDK设置为Android API 29平台
            2. 应该有一个通知,说明项目结构/问题下的依赖项列表中有一个无效项目。如果有,请转到 项目结构 > 在项目设置/模块下 > 选择 app_name_android > 依赖项选项卡 > 在模块 SDK 框中选择最新的“Android API 29 平台”。
            3. 将 android/app/build_gradle 下的 GradleException() 更新为 FileNotFoundException(),因为它在 Java 版本的 Android API 29 中不受支持 Solution found

            【讨论】:

              【解决方案9】:

              我尝试了所有其他建议,但都没有帮助。然后我把 GradleException 前面的“new”去掉了,问题就解决了:

              throw GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
              

              很长一段时间以来,它与“新”词配合得很好。我不知道是什么导致了这种变化。

              【讨论】:

              • 仅供参考,而不是删除新的,转到 file 然后 Invalidate Chache / Restart,这应该可以解决问题。
              【解决方案10】:

              根据颤振文档 https://flutter.dev/docs/development/tools/android-studio#android-ide

              打开 Flutter 项目的根目录不会将所有 Android 文件暴露给 IDE。 Flutter 应用程序包含一个名为 android 的子目录。如果您在 Android Studio 中将此子目录作为其自己的单独项目打开,IDE 将能够完全支持编辑和重构所有 Android 文件(如 Gradle 脚本)。

              【讨论】:

                【解决方案11】:

                转到File -> Project Structure -> Modules -> Select your project -> apply your API

                【讨论】:

                  【解决方案12】:

                  在您的“项目\android\build.gradle”中 只需更改:

                  classpath 'com.google.gms:google-services:4.3.2'
                  

                  到:

                  classpath 'com.google.gms:google-services:4.0.2'
                  

                  【讨论】:

                    【解决方案13】:

                    我也有同样的问题。我收到此错误是因为我在另一个选项卡(工具-> Flutter-> 打开 Android 模块..)中首先使用 AS 来编辑 android 模块而没有打开它。然后我有一个解决方案,只需重新启动并终止 Android Studio 中的 chache(文件 -> 使 Chache 无效 / 重新启动)。

                    它为我修好了,我希望你也是

                    https://github.com/flutter/flutter/issues/29608#issuecomment-528243662

                    【讨论】:

                      【解决方案14】:

                      是的,我遵循这个https://github.com/flutter/flutter/issues/37391#issuecomment-544823712 并在 android/app/build.gradle 中将 GradleException 更改为 FileNotFoundException。 否则将 android/build.gradle 中的 kotlin 版本升级到 1.3.50。 至少,将 gradle distributionUrl 升级到 5.4.1 版

                      【讨论】:

                      • 欢迎来到 SO!是答案吗?请编辑以清除。
                      【解决方案15】:

                      我刚遇到这个问题,在我的情况下是由于 SDK 配置无效。 我已经解决了:

                      项目结构 > 项目设置 > 模块 > 模块 SDK

                      <no project SDk>切换

                      Android api 29 platform

                      【讨论】:

                      • 对我来说没有变化。
                      • 我创建了另一个应用程序并替换了所有 .dart 文件和 pubspec.yaml。这是我找到的最快的方法。
                      【解决方案16】:

                      我在 Android Studio 中遇到了同样的问题。它看起来像 Flutter Plugin 的一个错误,所以它很可能也是 Intellij 中的一个问题。在 Android Studio 中有一个“在 Android Studio 中打开以进行编辑”的链接(右上角)。当我单击它时,我看到不再突出显示任何问题。我会在 IntelliJ 中检查类似的链接。这是我了解到的 Flutter 问题:https://github.com/flutter/flutter/issues/37391

                      【讨论】:

                        【解决方案17】:

                        需要将 google maven 存储库包含到您的项目级 build.gradle 文件中。

                        buildscript {
                            repositories {
                                google()
                                jcenter()
                                maven {                                    //add this section 
                                    url "https://maven.google.com"           
                                }
                            }
                        
                            dependencies {
                                classpath 'com.android.tools.build:gradle:3.5.0'
                            }
                        }
                        

                        【讨论】:

                          猜你喜欢
                          • 1970-01-01
                          • 2021-02-04
                          • 1970-01-01
                          • 2023-04-04
                          • 2023-03-24
                          • 2019-12-30
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多