我安装了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相关部分安装指南之前设置这些。
这并非总是必需的,但却是排除故障的好方法。
修改之前的答案,以反映新的变化:
自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相关部分安装指南之前设置这些。
这并非总是必需的,但却是排除故障的好方法。
上面的大多数选项已经展示了如何在Windows系统中配置Dart(如果你已经安装了Dart, Flutter Doctor显示一切正常)。
在MacOS上,此选项可在Android Studio > Preferences ('Command' + ',')下使用
在左侧窗格中找到Languages and Frameworks / Dart。
勾选“启用Dart支持”并找到Dart SDK。它将在您的Flutter SDK安装目录'/ Flutter -安装-目录/ Flutter /bin/cache/dart-sdk'内。输入这个将自动填充下一行的dart版本,指出框架被选中。
选中框启用Dart支持以下模块为您所需的项目。
单击Apply。单击Ok。
如上所述,这将解决大多数用例。如果错误仍然存在,可以执行“File > Invalidate Caches/Restart”。