如題,安裝Flutter環境(Mac平臺),最後執行flutter doctor時出現:
Android license status unknown.
按照正常步驟肯定是各種百度,然後按照文章提示執行:
flutter doctor --android-licenses
到這來問題來了,出現錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError
網上那些教程都是建議把Java版本降到Java8的,我不喜歡,我就要用Java11,寫web api用var爽!
很明顯就是Java9及更高版本纔會出現這個問題,因爲Java9之後幹掉了一些庫,如果寫過Springcloud的同學應該會知道,需要添加jaxb相關依賴:
在AndroidSDK(/Users/用戶名/Library/Android/sdk/tools)目錄的tools文件夾下面創建一個名爲"jaxb"的文件夾,將上面的jar包都下載到 jaxb 裏
提示:如果下載後的jar帶有版本號可以將版本號刪除掉,如:activation-1.1.1.jar可以重命名爲activation.jar
完成之後我們使用Notepad++之類的文本編輯工具打開sdkmanager.bat文件進行編輯,打開後,在大約66行那裏我們會看到這樣的一行代碼:
CLASSPATH=$APP_HOME/lib/dvlib-26.0.0-dev.jar:$APP_HOME/lib/jimfs-1.1.jar:$APP_HOME/lib/jsr305-1.3.9.jar:$APP_HOME/lib/repository-26.0.0-dev.jar:
我們按照這個規則將jaxb相關依賴添加進去就好了,下面是我添加的:
:$APP_HOME/lib/annotations-12.0.jar:$APP_HOME/lib/sdklib-26.0.0-dev.jar:$APP_HOME/lib/guava-22.0.jar:$APP_HOME/jaxb/activation.jar:$APP_HOME/jaxb/jaxb-impl.jar:$APP_HOME/jaxb/jaxb-xjc.jar:$APP_HOME/jaxb/jaxb-core.jar:$APP_HOME/jaxb/jaxb-jxc.jar:$APP_HOME/jaxb/jaxb-api.jar
改完,保存再次執行
flutter doctor --android-licenses
提示Y/N ,一路Y 即可,搞定!