我安装了Flutter并设置了Android Studio。然后我在GitHub (https://github.com/flutter/flutter)上克隆了一个flutter的例子,并在Android Studio中启动它,但它警告我“Dart SDK未配置”,这也发生在我的同事身上。但如果我在Android Studio中创建一个新项目,就完全没有问题。

我所做的:

安装了颤振 安装了Android Studio,以及Flutter插件,包括Dart插件 在命令行中颤振运行正常,所有五个测试都通过了。(见下文)

[✓] Flutter (on Mac OS X 10.13.3 17D47, locale en-US, channel dev) • Flutter version 0.0.22 at /Users/katelyn/flutter • Framework revision 3001b3307d (7 days ago), 2018-01-30 11:37:15 -0800 • Engine revision 8f2d72b183 • Tools Dart version 2.0.0-dev.16.0 • Engine Dart version 2.0.0-edge.7af4db0ea091dddca6b2da851e6dda8d7f9467e8 [✓] Android toolchain - develop for Android devices (Android SDK 27.0.3) • Android SDK at /Users/katelyn/Library/Android/sdk • Android NDK location not configured (optional; useful for native profiling support) • Platform android-27, build-tools 27.0.3 • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08) [✓] iOS toolchain - develop for iOS devices (Xcode 9.2) • Xcode at /Applications/Xcode.app/Contents/Developer • Xcode 9.2, Build version 9C40b • ios-deploy 1.9.2 • CocoaPods version 1.4.0 [✓] Android Studio (version 3.0) • Android Studio at /Applications/Android Studio.app/Contents • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b08) [✓] Connected devices • Android SDK built for x86 • emulator-5554 • android-x86 • Android 7.1.1 (API 25) (emulator)

上周,我可以通过命令行运行他们的例子(在那个目录下),

flutter run 

但现在我显示一些错误与Gradle。

Launching lib/main.dart on Android SDK built for x86 in debug mode... Initializing gradle... 0.7s Resolving dependencies... Error running Gradle: Exit code 1 from: /Users/katelyn/AndroidStudioProjects/flutter/examples/flutter_gallery/android/gradlew app:properties: FAILURE: Build failed with an exception. Where: Build file '/Users/katelyn/AndroidStudioProjects/flutter/examples/flutter_gallery/android/app/build.gradle' line: 20 What went wrong: A problem occurred evaluating project ':app'. 3 Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Get more help at https://help.gradle.org BUILD FAILED in 0s Please review your Gradle project setup in the android/ folder.


当前回答

修改之前的答案,以反映新的变化:

自Flutter 1.21以来的更改

从Flutter 1.21开始,Flutter SDK包含完整的Dart SDK。 所以如果你安装了Flutter,你可能不需要明确下载Dart SDK,除非:

你不用颤振 您使用的是1.21之前版本的Flutter。 您希望减少磁盘空间需求 您希望Dart SDK分发渠道/版本与Flutter SDK中捆绑的渠道/版本更好地分离。

安装Dart SDK

就我个人而言,因为我主要在笔记本电脑上工作,我已经从开发工具所需的所有空间中卸载了我的主驱动器,将所有东西都移动到这个回答中所描述的外部驱动器上

轻松Dart SDK安装

AFAIK, Dart只依赖于系统$PATH变量中有$SDK/bin目录可用。 至于安装SDK本身,无论是Dart还是Flutter + Dart,我发现下载你想要的频道(稳定版、beta版或dev版)的.zip文件,将其解压到硬盘上的某个位置,并在$ path的早期包含SDK /bin目录的路径是正确的方法。 如Dart文档中所述

一个可能的问题

从命令行运行命令与在IDE(或其他GUI应用程序)中不同,因为GUI应用程序通常将配置存储在自己的配置文件中,而各种shell将其配置存储在shell启动文件中,使用$PATH变量来决定它是否了解给定的应用程序/命令。它还定义了查找命令的顺序。

除非GUI应用程序(在本例中是IDE)在启动程序中生成一个shell,并以这种方式填充环境,否则这两种配置可以完全独立,并指向不同的工具/路径/实用程序。

这可以解释你提到的场景:

但如果我在Android Studio中创建一个新项目,就完全没有问题。

你可以通过Android Studio中的shell环境来定义环境

文件->新项目设置->新项目设置->工具->终端

在这里,你可以告诉Android Studio IDE本身应该从哪个shell中获取环境(作为登录shell的路径),定义新变量并确保启用了shell Integration选项。

现在你可以有相同的(或不同的,如果你愿意)环境运行,例如,纯Dart项目通过命令行和颤振应用程序在IDE中运行,通过选择你应该已经在你的shell启动文件中定义的值。

Android Studio配置

注意:从Android Studio 4.2开始,ANDROID_SDK_HOME环境变量已弃用,并已被ANDROID_PREFS_ROOT取代

这些都是变化的主题,所以总是检查Android Studio配置指南和 Android SDK相关部分安装指南之前设置这些。 这并非总是必需的,但却是排除故障的好方法。

其他回答

以防其他答案对你不起作用

如果你使用*nixOS或Mac

打开终端,输入颤振。你会得到/Users/mac/development/flutter/bin/flutter,在这个目录下,你会找到dart-sdk或(和)dart-sdk。旧的文件夹。复制它们的路径。 在mac上按ctrl+alt+s或cmd+打开首选项 语言和框架选择Dart找到Dart SDK路径。把那个 第一步复制到那里的路径。单击Apply。

如果这不能解决问题,你还必须设置Flutter SDK路径

在语言和框架下选择Flutter并找到Flutter SDK路径字段。 在文件夹层次结构中,您的flutter SDK路径相对于哪个flutter命令提供给您的路径高出两级。将其设置为在此头文件的第1步中找到的字段。再次单击“应用”并单击“保存”或“确定”。

我有同样的Dart SDK问题,我使用这个解决方案。为了解决这个问题,而不必每次都使用终端来测试我的程序,我遵循的步骤如下。

Find flutter SDK path. I did so by typing in echo $PATH and finding the path with /flutter/bin. Assuming your path is something like .../flutter/bin just add on /cache/dart-sdk/bin making it .../flutter/bin/cache/dart-sdk/bin. This .../flutter/bin/cache/dart-sdk/bin is the location of your Dart SDK. Assuming you say the same Dart SDK is not configured error accompanied by something where you can configure your Dart SDK. You click the configure option and set .../flutter/bin/cache/dart-sdk as your SDK. That should fix your problem. If not head over to the next step. Open your Android Studio preferences(Command + ',') and go to Languages and Frameworks>Dart. Under the Dart menu, you should be able to enter your Dart SDK path.

我使用IntelliJ IDEA完成了这些步骤,所以它们应该是差不多的。如果这不起作用,有时做一个虚拟的Dart项目可以让事情重新工作。这为我解决了一个类似的问题。

安装Flutter后,安装Dart sdk的最佳方式是创建一个新项目。在此窗口中,单击“安装SDK”。这将安装正常工作所需的所有内容。

在我的情况下,Dart还单独安装了最新的Dart开发。所以当IntelliJ建议我配置dart时,我点击它,然后它指向C:/tools/dart。

所以,我必须去文件->设置->语言和框架->dart,并将SDK路径添加到我的Flutter SDK路径,使用dart SDK C:\ Flutter \bin\cache\dart- SDK。

请注意,正如其他人提到的,如果您指出了Flutter SDK路径,您可能不需要设置Dart SDK路径,因为Flutter SDK自带Dart SDK。

修改之前的答案,以反映新的变化:

自Flutter 1.21以来的更改

从Flutter 1.21开始,Flutter SDK包含完整的Dart SDK。 所以如果你安装了Flutter,你可能不需要明确下载Dart SDK,除非:

你不用颤振 您使用的是1.21之前版本的Flutter。 您希望减少磁盘空间需求 您希望Dart SDK分发渠道/版本与Flutter SDK中捆绑的渠道/版本更好地分离。

安装Dart SDK

就我个人而言,因为我主要在笔记本电脑上工作,我已经从开发工具所需的所有空间中卸载了我的主驱动器,将所有东西都移动到这个回答中所描述的外部驱动器上

轻松Dart SDK安装

AFAIK, Dart只依赖于系统$PATH变量中有$SDK/bin目录可用。 至于安装SDK本身,无论是Dart还是Flutter + Dart,我发现下载你想要的频道(稳定版、beta版或dev版)的.zip文件,将其解压到硬盘上的某个位置,并在$ path的早期包含SDK /bin目录的路径是正确的方法。 如Dart文档中所述

一个可能的问题

从命令行运行命令与在IDE(或其他GUI应用程序)中不同,因为GUI应用程序通常将配置存储在自己的配置文件中,而各种shell将其配置存储在shell启动文件中,使用$PATH变量来决定它是否了解给定的应用程序/命令。它还定义了查找命令的顺序。

除非GUI应用程序(在本例中是IDE)在启动程序中生成一个shell,并以这种方式填充环境,否则这两种配置可以完全独立,并指向不同的工具/路径/实用程序。

这可以解释你提到的场景:

但如果我在Android Studio中创建一个新项目,就完全没有问题。

你可以通过Android Studio中的shell环境来定义环境

文件->新项目设置->新项目设置->工具->终端

在这里,你可以告诉Android Studio IDE本身应该从哪个shell中获取环境(作为登录shell的路径),定义新变量并确保启用了shell Integration选项。

现在你可以有相同的(或不同的,如果你愿意)环境运行,例如,纯Dart项目通过命令行和颤振应用程序在IDE中运行,通过选择你应该已经在你的shell启动文件中定义的值。

Android Studio配置

注意:从Android Studio 4.2开始,ANDROID_SDK_HOME环境变量已弃用,并已被ANDROID_PREFS_ROOT取代

这些都是变化的主题,所以总是检查Android Studio配置指南和 Android SDK相关部分安装指南之前设置这些。 这并非总是必需的,但却是排除故障的好方法。