1. ホーム
  2. java

[解決済み] Flutter.io Android ライセンスステータス不明

2022-02-10 06:57:11

質問

>[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    >>• Android SDK a ..\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
    X Android license status unknown.

Flutter doctorを実行すると、端末でのビルド・実行は可能なのですが、Android SDKでエラーが発生します。この問題を解決する方法について知りたいのです。Android SDKの最新版をダウンロードしていると思うのですが、先週はこの問題が発生しなかったので、何が起こったのかよくわかりません。

##新たな課題 コメントで考えられるいくつかの修正方法を追った結果、新たな問題につながりました。新しい jdk10 と共に、より新しいバージョンの android sdk P、8、7 をインストールしました。まだ十分に更新されていないようです。

C:\Flutter\flutter>flutter doctor --android-licenses
A newer version of the Android SDK is required. To update, run:
C:\Users\tdmil\AppData\Local\Android\sdk\tools\bin\sdkmanager --update

C:\Flutterflutter>C:\usersusername³³appdata³³local³³android³³tools³³bin³³sdkmanager.bat --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:582)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
        ... 5 more

解決方法は?

android SDKをアップデートした場合、ライセンスが変更されている可能性があります。アップデートの方法によっては、変更を受け入れるかどうか尋ねられたり、あるいは受け入れたという事実をflutterが理解できる形で保存しなかったりします。

解決するには、次のコマンドを実行してみてください。

flutter doctor --android-licenses

ライセンスを受け入れるかどうかが表示されるはずです(最初に尋ねられるかもしれませんが、その場合は単に y というメッセージが表示されるはずです。)

それでもまだ問題があるようなら、このページで新しいバグを報告するか Flutter Githubリポジトリ のような既存の課題にコメントを追加してください。 これ をご覧になっているのかもしれません。