我遵循Flutter文档中的步骤,尝试在Intellij IDEA中构建我的第一个Flutter应用程序。当我尝试运行它时,我的JAVA_HOME变量出现错误。并且有关的错误无法解析build.gradle文件中的符号“属性”。我真的不知道该怎么办。
这是我在控制台窗口中显示的错误信息。
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'
}
答案 0 :(得分:37)
我尝试了所有其他建议,但没有帮助。然后,我在GradleException前面删除了“新”,它解决了问题:
throw GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
在很长一段时间内,它与“新”字词都能很好地工作。我不知道是什么原因导致了这种变化。
答案 1 :(得分:21)
此问题是由于未指向正确的Android API平台
解决方案:
在Android Studio中 文件>项目结构
答案 2 :(得分:4)
我刚遇到这个问题,我的情况是由于无效的SDK配置。 我已经解决了:
项目结构>项目设置>模块>模块SDK
并从<no project SDk>
到Android api 29 platform
答案 3 :(得分:2)
对我有用:
GradleException()
更新为FileNotFoundException()
,因为Java版本的Java API不支持29
Solution found 答案 4 :(得分:1)
需要将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'
}
}
答案 5 :(得分:1)
对我来说,只需删除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.")
}
。 。 。 。 。 。 。
答案 6 :(得分:0)
我在Android Studio中遇到了同样的问题。它看起来像Flutter插件中的错误,因此很有可能也是Intellij中的问题。在Android Studio中,有一个指向“在Android Studio中打开以供编辑”的链接(右上角)。单击后,我不再看到任何突出显示的问题。我会在IntelliJ中检查类似的链接。这是我了解到的Flutter问题:https://github.com/flutter/flutter/issues/37391。
答案 7 :(得分:0)
是的,我遵循此https://github.com/flutter/flutter/issues/37391#issuecomment-544823712,并在android / app / build.gradle中将GraddleException更改为FileNotFoundException。 否则,请将android / build.gradle中的kotlin版本升级到1.3.50。 至少,将gradle distributionUrl升级到5.4.1版
答案 8 :(得分:0)
我有同样的问题。我收到此错误,是因为我没有先使用AS在另一个标签中(工具-> Flutter->打开Android模块..)来编辑android模块而未打开它。然后,我有一个解决方案,只需重新启动并杀死您Android Studio中的chache(文件->使Chache无效/重新启动)即可。
它对我来说固定,我也希望你
https://github.com/flutter/flutter/issues/29608#issuecomment-528243662
答案 9 :(得分:0)
在您的“ project \ android \ build.gradle”中 只需更改:
classpath 'com.google.gms:google-services:4.3.2'
至:
classpath 'com.google.gms:google-services:4.0.2'
答案 10 :(得分:0)
转到<head>
<title>Passinho</title>
<link rel="stylesheet" type="text/css" href="/style.css">
</head>
<body>
<br><br><br><h1>Passinho: 64 videos</h1><br><br><br><center>
<!-- 64 -->
<blockquote class="twitter-tweet"><p lang="pt" dir="ltr">ESSE VÍDEO É VICIANTE ?????? <a href="https://twitter.co/blLqQhWes6">pic.twitter.com/blLqQhWes6</a></p>— PASSINHOS E DANCINHAS?? (@ilovepassinhorj) <a href="https://twitter.com/ilovepassinhorj/status/1205874013920206850?ref_src=twsrc%5Etfw">December 14, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!-- 63 -->
<blockquote class="twitter-tweet"><p lang="und" dir="ltr">? <a href="https://twitter.co/orvqANs3VQ">pic.twitter.com/orvqANs3VQ</a></p>— Bia Das Dancinhas (@Ofcquebradeira) <a href="https://twitter.com/Ofcquebradeira/status/1207007235563499520?ref_src=twsrc%5Etfw">December 17, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!-- 62 -->
<br><blockquote class="twitter-tweet"><p lang="pt" dir="ltr">Mandei dancinha com o fuzil na mão, e pra poucos tá .... ??? <a href="https://twitter.co/s4gpEXlGxK">pic.twitter.com/s4gpEXlGxK</a></p>— Jacaré fantástico ? (@Jacarefantastic) <a href="https://twitter.com/Jacarefantastic/status/1204793573037789189?ref_src=twsrc%5Etfw">December 11, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!-- 61 -->
<blockquote class="twitter-tweet"><p lang="pt" dir="ltr">Já que pedirammm ??♂️<br>Tivemos que quebrar ??????<a href="https://twitter.com/eilaryssamoraes?ref_src=twsrc%5Etfw">@eilaryssamoraes</a> <a href="https://twitter.co/Sp3dipMm0o">pic.twitter.com/Sp3dipMm0o</a></p>— Lc Quebradeira??? (@lucasalveslc1) <a href="https://twitter.com/lucasalveslc1/status/1201655334496067586?ref_src=twsrc%5Etfw">December 3, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
<!-- 60 -->
<blockquote class="twitter-tweet"><p lang="pt" dir="ltr">Denunciaram eu posto denovo, Toma-lhe Quebradeira ??? <a href="https://twitter.co/ocdXY9f41b">pic.twitter.com/ocdXY9f41b</a></p>— Caduzinho Quebradeira? (@cadumarinss) <a href="https://twitter.com/cadumarinss/status/1197289193002717186?ref_src=twsrc%5Etfw">November 20, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
答案 11 :(得分:0)
根据flutter文档 https://flutter.dev/docs/development/tools/android-studio#android-ide
打开Flutter项目的根目录不会将所有Android文件公开给IDE。 Flutter应用程序包含一个名为android的子目录。如果您在Android Studio中将此子目录作为其自己的单独项目打开,则IDE将能够完全支持编辑和重构所有Android文件(例如Gradle脚本)。
答案 12 :(得分:0)
更新:2020年10月15日。
我正在Windows 10(amd64)上使用运行时版本1.8.0_242-release-1644 ...在Android Studio版本4.1(今天重新安装)中运行Flutter版本1.12.13 + hotfix9。
我通过在“属性”和“ GradleException”之前删除了“新”一词来修复了项目级别和应用程序级别的gradle构建文件,并在两个文件中均删除了Studio错误消息。
答案 13 :(得分:0)
这不是错误,不要从 GradleException 和 properties() 方法中删除新关键字,只需重新启动你的 android studio 你的问题就会解决。
答案 14 :(得分:0)
无法解析符号“属性”
无法解析符号
'GradleException'
甚至在打开清单文件时出现许多错误的情况下。
这不是问题,您不需要做任何事情。之所以显示这些,是因为 IDE 在正常模式下没有检测到它们。只需“在 Android Studio 中打开以进行编辑”(您可以在右上角找到它),然后选择“新窗口”,您会发现一切都很好。