我安装了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相关部分安装指南之前设置这些。
这并非总是必需的,但却是排除故障的好方法。
我有同样的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 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相关部分安装指南之前设置这些。
这并非总是必需的,但却是排除故障的好方法。