更新后无法 运行 Android 上的 Flutter 项目

Unable to run Flutter project on Android after update

在将我的 Flutter 项目升级到 2.10.4 后,我一直在尝试将其升级到 运行,从一开始就很头疼。该项目 运行 在浏览器上运行良好,但我在 运行 模拟器上遇到困难 运行。我想我正处于最后一个障碍,但我现在被难住了。我在 VS Code 上 运行ning 时收到此错误:

失败:构建失败,出现异常。

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Failed to install the following SDK components:
      build-tools;30.0.2 Android SDK Build-Tools 30.0.2
  The SDK directory is not writable (C:\Program Files (x86)\Android\android-sdk)

这是我的 Flutter 医生:

PS D:\Documents\Flutter_Projects\glance> flutter doctor -v
[√] Flutter (Channel stable, 2.10.4, on Microsoft Windows [Version 10.0.19043.1586], locale en-US)
• Flutter version 2.10.4 at D:\Programs\flutter_windows_v1.2.1-stable\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision c860cba910 (3 weeks ago), 2022-03-25 00:23:12 -0500
• Engine revision 57d3bac3dd
• Dart version 2.16.2       
• DevTools version 2.9.2
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Program Files (x86)\Android\android-sdk
• Platform android-31, build-tools 30.0.3
• ANDROID_HOME = C:\Users\reff1\AppData\Local\Android\Sdk
• ANDROID_SDK_ROOT = C:\Users\reff1\AppData\Local\Android\Sdk
• Java binary at: D:\AndroidStudio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
X Android license status unknown.
  Run `flutter doctor --android-licenses` to accept the SDK licenses.
  See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[X] Visual Studio - develop for Windows
X Visual Studio not installed; this is necessary for Windows development.
  Download at https://visualstudio.microsoft.com/downloads/.
  Please install the "Desktop development with C++" workload, including all of its default components
[√] Android Studio (version 2021.1)
• Android Studio at D:\AndroidStudio
• Flutter plugin can be installed from:
   https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
   https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
[!] Android Studio (version 4.1)
• Android Studio at D:\Programs\AndroidStudio
• Flutter plugin can be installed from:
   https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
   https://plugins.jetbrains.com/plugin/6351-dart
X Unable to determine bundled Java version.
• Try updating or re-installing Android Studio.
[√] VS Code, 64-bit edition (version 1.50.1)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension version 3.17.0
[√] Connected device (4 available)
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 12 (API 32) (emulator)
• Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.19043.1586]
• Chrome (web)                 • chrome        • web-javascript • Google Chrome 100.0.4896.88
• Edge (web)                   • edge          • web-javascript • Microsoft Edge 99.0.1150.46
[√] HTTP Host Availability
• All required HTTP hosts are available

这是一直吸引我的部分。我发现我需要 运行 flutter doctor --android-licenses,这就是我得到的:

PS D:\Documents\Flutter_Projects\glance> flutter doctor --android-licenses

Error: Could not find or load main class Files

我不知道从这里去哪里。在这里将不胜感激任何帮助。提前谢谢你。

在 android studio 中更新您的 sdk 30

无法确定捆绑的 Java 版本。 • 尝试更新或 re-installing Android Studio 在 flutter doctor

中查看你的错误

更改 Android SDK 的所有权:

sudo chown -R $(whoami) $ANDROID_HOME

您似乎有两套Android Studio 和Android SDK。

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Program Files (x86)\Android\android-sdk     <--- 1
...
• ANDROID_HOME = C:\Users\reff1\AppData\Local\Android\Sdk      <--- 2
[√] Android Studio (version 2021.1)    <--- 1
• Android Studio at D:\AndroidStudio
...
[!] Android Studio (version 4.1)      <--- 2
• Android Studio at D:\Programs\AndroidStudio

Android Studio 版本 4.1 有点旧,所以我猜你以前安装过它而忘记了它。

此外,将 Android SDK 放在 Program Files 下是不正常的(或 up-to-date)。 这是错误的直接原因。在Windows中,在Program Files下写入文件需要管理员权限。 您的系统可能会混淆,因为您有一个混合环境,其中一个 SDK 需要管理员权限,另一个不需要。

我的建议是先卸载所有这些。 在开始之前,找出 Android Studio 配置文件的存储位置并备份它们。 它记录在 here.

现在,彻底卸载所有版本的Android Studio和Android SDK,手动删除所有与Android相关的环境变量,如果有,手动删除(并备份)所有配置文件如果卸载程序没有,则确保上面的所有四个目录都是空的

接下来,安装最新版本的Android Studio 并通过Android Studio 安装Android SDK。此时,确保安装目录不在Program FilesProgram Files (x86)下。如果是,那么旧版本的某些东西仍然存在并且在做坏事,所以你必须从第一步重新开始。

最后,运行 flutter clean(只是为了确定),然后 flutter doctor 以确保每个检测到一个。

对于此问题:Android 许可证状态未知。 输入命令提示符 扑博士--android-licenses

键入 Yes/y/Y 以接受许可

可能是模拟器的问题,你试过在真机上运行吗?

关于您遇到的 android 许可证问题,我猜系统无法识别 JAVA 或者需要更新,所以请检查一下。

还要确保模拟器本身已更新,而不仅仅是 android SDK,转到 SDK 管理器并检查所有虚线组件:

如果这不起作用,请删除模拟器并创建一个新模拟器,如果这没有帮助,请删除 android studio 的所有实例,因为我在您的系统上看到 2 可能与SDK路径。