Flutter 和 Dart 插件在降级 flutter 时未安装错误,即使它们已安装在 android studio 上

Flutter and Dart plugin not installed errror when downgrade flutter even though they are installed on android studio

Doctor summary (to see all details, run flutter doctor -v):
 [√] Flutter (Channel unknown, v1.4.0, on Microsoft Windows [Version 10.0.19041.804], locale en-IE)
 [!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
     X Android license status unknown.
       Try re-installing or updating your Android SDK Manager.
       See https://developer.android.com/studio/#downloads or visit 
 https://flutter.io/setup/#android-setup for detailed
       instructions.
 [!] Android Studio
     X Flutter plugin not installed; this adds Flutter specific functionality.
     X Dart plugin not installed; this adds Dart specific functionality.
 [√] VS Code (version 1.52.1)
 [!] Connected device
     ! No devices available

我用的是最新版的flutter,运行flutter doctor,一切正常。然后我降级了 flutter 现在它说我没有安装 flutter 和 Dart 插件,即使我安装了。

我 运行 这个命令 - flutter doctor --android-licenses 并收到以下错误

A newer version of the Android SDK is required. To update, run: C:\Users\willm\AppData\Local\Android\sdk\tools\bin\sdkmanager --update

然后我 运行 它告诉我的命令 运行 并收到此错误

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
    at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
    Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 5 more

我现在 运行 没主意了,关于在不再次升级 flutter 的情况下该怎么做的建议?

所以我在升级到 flutter 2.0 后遇到了同样的问题,但是有些包还没有准备好。因此,我不得不降级。尽管 flutter 医生说:

[!] Android Studio(版本 4.1.0) X Flutter 插件未安装;这增加了 Flutter 特定的功能。 X Dart 插件未安装;这增加了 Dart 特定的功能。

我仍然能够毫无问题地构建和测试应用程序。因此,请尝试重建 运行 应用程序。希望当它保存升级到 2.0 时,这些小东西会消失。

有些解决方案可能有用

1).解决方案 1

运行 Flutter clean 重建应用程序

2).解决方案 2

通过 运行 接受许可,执行以下命令 您只需通过 运行 此命令

接受许可
yes | sdkmanager --licenses

用于Linux 使用:

yes | ~/Android/Sdk/tools/bin/sdkmanager --licenses

用于Windows 使用:

%ANDROID_HOME%/tools/bin/sdkmanager --licenses

注:设置

%ANDROID_HOME%

作为

C:\Users\username\AppData\Local\Android\Sdk

之后检查许可证

颤振:

flutter doctor --android-licenses 

3). 解决方案 3

当前SDK版本不兼容Java9.

因此,要解决它,您可以将 java 版本降级到 Java 8,或者使用解决方法,您可以在终端上导出以下选项:

Linux:

export JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

Windows:

set JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

为了让它坚持下去,您可以在 Linux 上的配置文件中导出 JAVA_OPTS(.zshrc、.bashrc 等)或在 [=67 上永久添加为环境=].

然后,您可以输入flutter或sdkmanager命令:

颤振:

flutter doctor --android-licenses

sdkmanager:

sdkmanager --licenses

并在需要接受许可时键入 Y。