Flutter无法识别Android SDK Build-Tools 25.0.3

时间:2017-11-30 19:24:32

标签: flutter android-studio-3.0

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阶段,正如你所看到的,我有几个循环问题,它说它无法找到命令,但命令存在。我按照确切的安装步骤进行操作,如果需要花费数天才能解决问题,但仍然没有解决方案,我会说,它甚至还没有准备就绪。

1 个答案:

答案 0 :(得分:3)

运行flutter doctor时出现此错误的原因是您没有将flutter.bat位置文件放在PATH(Windows环境变量)中。或者也许只是搞砸了。
假设您不想这样做,只需将flutter称为"$FLUTTER_DIR\bin\flutter" doctor --android-licences