Mac Flutter 問題之 Android license status unknown.

flutter doctor 提示以下錯誤信息;

[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
    ? Android license status unknown.

1. 執(zhí)行 flutter doctor --android-licenses 即可,但是執(zhí)行的時候又遇到以下錯誤

jason@local Doc$ flutter doctor --android-licenses
A newer version of the Android SDK is required. To update, run:
/Users/jason/Doc/android_sdk/tools/bin/sdkmanager --update

再執(zhí)行 */tools/bin/sdkmanager --update 即可

2. 執(zhí)行 **/tools/bin/sdkmanager --update 可能提示以下錯誤

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

這個是因為安裝的java環(huán)境版本過高,所以以需要卸載當前java

3. 卸載java版本

sudo rm -fr /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin 
sudo rm -fr /Library/referencesPanes/JavaControlPanel.prefpane

ls /Library/Java/JavaVirtualMachines/ 
## 顯示:jdk-10.0.2.jdk
sudo rm -rf /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk

卸載成功:java -version //提示 No Java runtime present, requesting install.

4. 再執(zhí)行 **/tools/bin/sdkmanager --update 提示JAVA_HOME 錯誤

jason@local Commands$ /Users/jason/Doc/android_sdk/tools/bin/sdkmanager --update
ERROR: JAVA_HOME is set to an invalid directory: /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

這是 JAVA_HOME 配置發(fā)生變化了,需要重新配置 JAVA_HOME

5. 配置 JAVA_HOME

查找JAVA_HOME
打開Mac的終端,檢查JDK是否安裝成功:java -version
查看java指令所在的目錄:which java
輸出結(jié)果:/usr/bin/java
顯示java指令文件的屬性:ls -l /usr/bin/java
輸出結(jié)果如下:

jason@local Commands$ which java
/usr/bin/java
jason@local Commands$ ls -l /usr/bin/java
lrwxr-xr-x  1 root  wheel  74  3 28  2018 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

從輸出結(jié)果可以知道**/usr/bin/java文件是一個鏈接文件,實際是指向 /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java 文件
進入實際指令所在的文件夾:
執(zhí)行指令:./java_home
執(zhí)行結(jié)果如下:

jason@local ~$ cd /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/
jason@local Commands$ ./java_home 
/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home

修改JAVA_HOME 路徑配置

vim ~/.bash_profile

# export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home

刷新配置 source ~/.bash_profile

6. 成功執(zhí)行 **/tools/bin/sdkmanager --update

jason@local Commands$ /Users/jason/Doc/android_sdk/tools/bin/sdkmanager --update
Warning: File /Users/jason/.android/repositories.cfg could not be loaded.       
[=======================================] 100% Computing updates...   

7. 繼續(xù)執(zhí)行 flutter doctor --android-licenses 出現(xiàn)的y/N 一直回車y 即可

jason@local Commands$ flutter doctor --android-licenses
Warning: File /Users/jason/.android/repositories.cfg could not be loaded.       
6 of 6 SDK package licenses not accepted. 100% Computing updates...             
Review licenses that have not been accepted (y/N)? y

8. flutter doctor 成功配置 android 虛擬機

jason@local Commands$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[?] Flutter (Channel stable, v1.9.1+hotfix.5, on Mac OS X 10.13.6 17G65, locale zh-Hans-CN)
[?] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[?] Xcode - develop for iOS and macOS
    ? Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    ? CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install:
        sudo gem install cocoapods
[?] Android Studio (version 3.5)
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容