更新后无法 运行 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 Files
或Program Files (x86)
下。如果是,那么旧版本的某些东西仍然存在并且在做坏事,所以你必须从第一步重新开始。
最后,运行 flutter clean
(只是为了确定),然后 flutter doctor
以确保每个检测到一个。
对于此问题:Android 许可证状态未知。
输入命令提示符
扑博士--android-licenses
键入 Yes/y/Y 以接受许可
可能是模拟器的问题,你试过在真机上运行吗?
关于您遇到的 android 许可证问题,我猜系统无法识别 JAVA 或者需要更新,所以请检查一下。
还要确保模拟器本身已更新,而不仅仅是 android SDK,转到 SDK 管理器并检查所有虚线组件:
如果这不起作用,请删除模拟器并创建一个新模拟器,如果这没有帮助,请删除 android studio 的所有实例,因为我在您的系统上看到 2 可能与SDK路径。
在将我的 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 Files
或Program Files (x86)
下。如果是,那么旧版本的某些东西仍然存在并且在做坏事,所以你必须从第一步重新开始。
最后,运行 flutter clean
(只是为了确定),然后 flutter doctor
以确保每个检测到一个。
对于此问题:Android 许可证状态未知。 输入命令提示符 扑博士--android-licenses
键入 Yes/y/Y 以接受许可
可能是模拟器的问题,你试过在真机上运行吗?
关于您遇到的 android 许可证问题,我猜系统无法识别 JAVA 或者需要更新,所以请检查一下。
还要确保模拟器本身已更新,而不仅仅是 android SDK,转到 SDK 管理器并检查所有虚线组件:
如果这不起作用,请删除模拟器并创建一个新模拟器,如果这没有帮助,请删除 android studio 的所有实例,因为我在您的系统上看到 2 可能与SDK路径。