Literary,刚刚开始关注Flutter,在Android Studio 3.0.1中安装了Flutter插件,重新启动了Android Studio,根据Flutter文档创建了一个简单的hello world应用程序。
这也在C:\flutter
中安装了Flutter SDK,因此应用创建过程正确选择了SDK位置的位置。
但是,运行应用程序(在模拟器上)会显示此错误
Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Finished with error:
* Error running Gradle:
Unable to download needed Android SDK components, as the following licenses have not been accepted:
Android SDK Build-Tools 25.0.3
To resolve this, please run the following command in a Terminal:
flutter doctor --android-licenses
但是当我查看Android SDK时,会安装25.0.0 to 27.0.1
中的每个Build-Tools,包括25.0.3.
如上所述,从终端运行flutter doctor --android-licenses
会显示此错误
C:\Users\user\Desktop\work\flutter\first_flutter_app>doctor --android-licences
'flutter' is not recognized as an internal or external command,
operable program or batch file.
更新
然后我将C:\flutter\bin
添加到系统路径并再次尝试发出
flutter doctor --android-licenses
但收到错误“Unknown argument --licenses
”。
接下来我跑:
flutter upgrade
这也完成了,但运行我的应用程序仍然产生相同的错误重新许可证问题。
flutter upgrade
显示以下输出:
Running flutter doctor...
[√] Flutter (on Microsoft Windows [Version 10.0.15063], locale en-US, channel alpha)
• Flutter at C:\flutter
• Framework revision d957c8f040 (4 days ago), 2017-11-30 13:29:59 -0800
• Engine revision 77d8acb9be
• Tools Dart version 1.25.0-dev.11.0
• Engine Dart version 2.0.0-dev.9.0
[√] Android toolchain - develop for Android devices (Android SDK 25.0.2)
• Android SDK at C:\Program Files (x86)\Android\android-sdk
• Unable to locate Android NDK.
• Unable to locate compiler in Android NDK.
• Platform android-25, build-tools 25.0.2
• ANDROID_HOME = C:\Program Files (x86)\Android\android-sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)
[√] Android Studio (version 3.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)
[√] Connected devices
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 7.1.1 (API 25) (emulator)
我明确地继续与此分道扬..以下是当我使用flutter从terminall运行我的应用程序时发生的情况(上面我解释了如果我从IDE运行它会发生什么:
C:\Users\user\Desktop\work\flutter\flutter_app_myapp>flutter run
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle... 0.7s
Resolving dependencies... |
* Error running Gradle:
Unable to download needed Android SDK components, as the following licenses have not been accepted:
Android SDK Build-Tools 25.0.3
To resolve this, please run the following command in a Terminal:
flutter doctor --android-licenses /
C:\Users\user\Desktop\work\flutter\flutter_app_myapp>>flutter doctor --android-licenses
Error: Unknown argument --licenses
UPDATE2
flutter -v doctor --android-licenses
C:\Users\user\Desktop\work\flutter\flutter_app_dino>flutter -v doctor --android-licenses
[ +23 ms] [C:\flutter\] git rev-parse --abbrev-ref --symbolic @{u}
[ +45 ms] Exit code 0 from: git rev-parse --abbrev-ref --symbolic @{u}
[ ] origin/alpha
[ ] [C:\flutter\] git rev-parse --abbrev-ref HEAD
[ +20 ms] Exit code 0 from: git rev-parse --abbrev-ref HEAD
[ ] alpha
[ ] [C:\flutter\] git ls-remote --get-url origin
[ +19 ms] Exit code 0 from: git ls-remote --get-url origin
[ ] https://github.com/flutter/flutter.git
[ ] [C:\flutter\] git log -n 1 --pretty=format:%H
[ +20 ms] Exit code 0 from: git log -n 1 --pretty=format:%H
[ ] d957c8f040902aa3fd44b367150bde56b64cec83
[ ] [C:\flutter\] git log -n 1 --pretty=format:%ar
[ +21 ms] Exit code 0 from: git log -n 1 --pretty=format:%ar
[ ] 5 days ago
[ +222 ms] C:\Program Files (x86)\Android\android-sdk\tools\bin\sdkmanager.bat --licenses
**Error: Unknown argument --licenses**
Usage:
sdkmanager [--uninstall] [<common args>] \
[--package_file <package-file>] [<packages>...]
sdkmanager --update [<common args>]
sdkmanager --list [<common args>]
In its first form, installs, or uninstalls, or updates packages.
<package> is a sdk-style path (e.g. "build-tools;23.0.0" or
"platforms;android-23").
<package-file> is a text file where each line is a sdk-style path
of a package to install or uninstall.
Multiple --package_file arguments may be specified in combination
with explicit paths.
In its second form (with --update), currently installed packages are
updated to the latest version.
In its third form, all installed and available packages are printed out.
Common Arguments:
--sdk_root=<sdkRootPath>: Use the specified SDK root instead of the SDK containing this tool
--channel=<channelId>: Include packages in channels up to <channelId>.
Common channels are:
0 (Stable), 1 (Beta), 2 (Dev), and 3 (Canary).
--include_obsolete: With --list, show obsolete packages in the
package listing. With --update, update obsolete
packages as well as non-obsolete.
--no_https: Force all connections to use http rather than https.
--proxy=<http | socks>: Connect via a proxy of the given type.
--proxy_host=<IP or DNS address>: IP or DNS address of the proxy to use.
--proxy_port=<port #>: Proxy port to connect to.
* If the env var REPO_OS_OVERRIDE is set to "windows",
"macosx", or "linux", packages will be downloaded for that OS.
[ +152 ms] "flutter doctor" took 301ms.
[ +198 ms] ensureAnalyticsSent: 196ms
[ +2 ms] exiting with code 0
但是,如果我导航到我的Android \ sdk \ tools \ bin,我确实有sdkmanager并从那里发出sdkmanager --licenses
显示:
C:\Users\user\AppData\Local\Android\sdk\tools\bin>sdkmanager --licenses
All SDK package licenses accepted.======] 100% Computing updates...
所以,看起来Flutter目前充满了bug,不知道是否值得花时间在这个alpha阶段,正如你所看到的,我有几个循环问题,它说它无法找到命令,但命令存在。我按照确切的安装步骤进行操作,如果需要花费数天才能解决问题,但仍然没有解决方案,我会说,它甚至还没有准备就绪。
答案 0 :(得分:3)
运行flutter doctor
时出现此错误的原因是您没有将flutter.bat位置文件放在PATH(Windows环境变量)中。或者也许只是搞砸了。
假设您不想这样做,只需将flutter
称为"$FLUTTER_DIR\bin\flutter" doctor --android-licences
。