完美解决Mac上Android license status unknown.的问题

前言

经过昨天环境的搭建,目前我可以在iOS模拟器上运行flutter项目,但是作为强迫症,我想把安卓的环境也配置好,能够在安卓模拟器上运行flutter项目.详情请看这一篇
)记录.
Android Studio, Android SDK以及安卓平台构建工具的下载安装就不做介绍了(可以参考这里
),只说一下我选择的版本:
Android Studio(3.6.0)
Android SDK(10.0)
JDK(13.0.2)
经过上述准备以及环境变量的配置,现在执行flutter doctor出现Android license status unknown.问题.
经过查阅资料以及自己的理解终于解决了改问题.
注: 该资料解决Android license status unknown.问题应该是windows环境,与Mac环境存在一点出入,而且相关需要下载的资源也已经不存在.

一、 成果

11582955391_.pic_hd.jpg
21582955428_.pic_hd.jpg

二、 解决问题

出现Android license status unknown.问题后,flutter doctor推荐的解决方式:

flutter doctor --android-licenses

但是在执行这一句以后,会让先执行下面一句:

/Users/sj/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:583)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 5 more

网上那些教程都是建议把Java版本降到Java8的,我不喜欢,我就要用Java13,写web api用var爽!

很明显就是Java9及更高版本才会出现这个问题,因为Java9之后干掉了一些库,如果写过Springcloud的同学应该会知道,需要添加jaxb相关依赖:
activation.jar
jaxb-impl.jar
jaxb-xjc.jar
jaxb-core.jar
jaxb-jxc.jar
jaxb-api.jar
istack-commons-runtime.jar
在AndroidSDK目录的工具文件夹下面创建一个名为“ jaxb”的文件夹,将上面的jar包都下载到里,如图:

image.png

提示:如果下载后的jar具有版本号可以将版本号删除掉,如:activation-1.1.1.jar可以重命名为activation.jar
完成之后我们使用VS Code的文本编辑工具打开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:..

对应的将其改为

CLASSPATH=$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:$APP_HOME/jaxb/istack-commons-runtime.jar:$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:$APP_HOME/lib/j2objc-annotations-1.1.jar:$APP_HOME/lib/layoutlib-api-26.0.0-dev.jar:$APP_HOME/lib/gson-2.3.jar:$APP_HOME/lib/httpcore-4.2.5.jar:$APP_HOME/lib/commons-logging-1.1.1.jar:$APP_HOME/lib/commons-compress-1.12.jar:$APP_HOME/lib/annotations-26.0.0-dev.jar:$APP_HOME/lib/error_prone_annotations-2.0.18.jar:$APP_HOME/lib/animal-sniffer-annotations-1.14.jar:$APP_HOME/lib/httpclient-4.2.6.jar:$APP_HOME/lib/commons-codec-1.6.jar:$APP_HOME/lib/common-26.0.0-dev.jar:$APP_HOME/lib/kxml2-2.3.0.jar:$APP_HOME/lib/httpmime-4.1.jar:$APP_HOME/lib/annotations-12.0.jar:$APP_HOME/lib/sdklib-26.0.0-dev.jar:$APP_HOME/lib/guava-22.0.jar

保存后再次执行:

/Users/sj/Android/SDK/tools/bin/sdkmanager --update    (路劲可能存在差异,这是我电脑的路径)
image.png

这样就可以了,接下来我们再执行

flutter doctor --android-licenses

然后按照提示不断“ y”然后回车就好了


image.png

最后执行 flutter doctor,问题已经解决!

记录一下我现在为flutter配置的环境变量,以备不时之需

export PATH=/Users/sj/app/flutter/bin:$PATH
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn


export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-13.0.2.jdk/Contents/Home

export ANDROID_HOME=/Users/sj/Android/SDK 
export ANDROID_BUILD_PATH=${PATH}:${ANDROID_HOME}/tools
export ANDROID_PLATFORM_PATH=${PATH}:${ANDROID_HOME}/platform-tools


GRADLE_HOME=/Applications/Android\ Studio.app/Contents/gradle/gradle-5.6.4
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341