📅  最后修改于: 2023-12-03 15:28:56.858000             🧑  作者: Mango
最近在使用Flutter开发Android应用的过程中,有些开发者可能会遇到“颤振医生 --android-licenses 错误”的问题,这个问题主要是由于Android SDK许可证没有同意引起的。在这篇文章中,我们将会详细讲解如何解决这个问题。
当你在运行flutter doctor
时,你可能会看到如下错误:
颤振医生 --android-licenses 错误
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:809)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Error: A problem occurred configuring project ':app'.
> Failed to install the following Android SDK packages as some licences have not been accepted.
platforms;android-28 Android SDK Platform 28
To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html
Using Android SDK: /Users/xxxxx/Library/Android/sdk
这个错误告诉我们,我们需要同意Android SDK的许可证协议才能继续开发。
为了解决这个问题,我们需要同意Android SDK的所有许可证协议。
首先,我们可以使用以下脚本来自动同意所有Android SDK的许可证协议。
flutter doctor --android-licenses
当你运行这个命令时,你将会被提示同意所有许可证协议。按下y即可完成同意。
如果你不想使用脚本或者你遇到了其他问题,你也可以手动同意Android SDK的许可证协议。
首先,你需要进入到Android SDK的目录中。在我的电脑上,这个目录是/Users/xxxxx/Library/Android/sdk
。你可以根据你自己的电脑来确定这个目录的位置。
然后,进入到tools/bin目录,并运行以下命令。
./sdkmanager --licenses
你将会看到所有的许可证协议。按下y即可同意所有协议。这个过程可能会比较繁琐,但是这是必须的。
在本文中,我们讲解了如何解决“颤振医生 --android-licenses 错误”的问题。无论你是选择使用脚本或者手动同意协议,都需要同意所有的许可证协议。这个过程可能会比较繁琐,但是这是必须的。