这篇文章主要围绕AndroidTV开源社区和androidtv开发展开,旨在为您提供一份详细的参考资料。我们将全面介绍AndroidTV开源社区的优缺点,解答androidtv开发的相关问题,同时也会
这篇文章主要围绕Android TV 开源社区和android tv开发展开,旨在为您提供一份详细的参考资料。我们将全面介绍Android TV 开源社区的优缺点,解答android tv开发的相关问题,同时也会为您带来2024 第一弹,JAVA 原生 AI 算法引擎 EasyAI 加入 Dromara 开源社区、Dante Cloud 2.7.2.2 发布,正式加入 Dromara 开源社区、Easy-Es 加入 Dromara 开源社区,健身教练开源的 ElasticSearch Plus、flutter doctor出现问题 [!] Android toolchain - develop for Android devices (Android SDK version 28.0.3) X Android license status unknown. Try re-installing or updating your Android SDK Manager. 的解决方案的实用方法。
本文目录一览:- Android TV 开源社区(android tv开发)
- 2024 第一弹,JAVA 原生 AI 算法引擎 EasyAI 加入 Dromara 开源社区
- Dante Cloud 2.7.2.2 发布,正式加入 Dromara 开源社区
- Easy-Es 加入 Dromara 开源社区,健身教练开源的 ElasticSearch Plus
- flutter doctor出现问题 [!] Android toolchain - develop for Android devices (Android SDK version 28.0.3) X Android license status unknown. Try re-installing or updating your Android SDK Manager. 的解决方案
Android TV 开源社区(android tv开发)
QQ 群 1:522186932
QQ 群 2:468357191
论坛:http://www.androidtvdev.com
酷莓开源社区:https://gitee.com/kumei (有很多和 TV 相关的开源库,不定时分享一些 TV 的心得)
2024 第一弹,JAVA 原生 AI 算法引擎 EasyAI 加入 Dromara 开源社区

如今 AI 项目无论在工业领域还是生活领域都开始逐渐深入,chatGPT,文心一言等大模型更是如火如荼,让我们看到了 AI 的强大。不知道多少小伙伴想快速涉猎到 AI 领域呢?因为各种原因 JAVA 在 AI 领域一直是传统弱项,但是 JAVA 程序员却占据了国内程序员就业的半壁江山,所以这次我带来的 java 原生开源 AI 算法引擎 - easyAI(不依赖任何第三方库,开箱即用的引擎),介绍给大家。
EasyAI - JAVA 原生 AI 算法引擎
作者介绍
- dromara 开源组织成员,dromara/easyAI 作者。
- 2 年 JAVA 开发工程师,2 年游戏开发工程师,5 年图像 / 自然语言算法研究员与工程师。从业 IT 九年,做算法工作时产出视觉与语言算法发明专利共三件(独立发明),项目若干。工作经历以图像算法为主,语言为辅。做游戏工作时休闲小游戏产出不计其数,做 JAVA 工作时以中间件研发工作为主。
背景与简介
广大公司,尤其是中小公司是不是遇到过以下痛点?
1. 公司后端突然需要一个 AI 模块来辅助某业务场景,但是因为传统业务关系公司后端大部分都是 java 程序员。 去招个资深的算法工程师吧,先不说招聘的时间成本,就因为这么一个需求就去找一个价格这么昂贵的人员也太不经济,最后只能无奈外包。
2. 突然有了某个 AI 模块需求,用了很长的时间成本从网上买了一套做好的 AI 模块,结果人家是 py 或者 cpp。动不动还要装 cuda 环境(但凡装过 cuda 环境的都知道多少坑),有时候要考虑环境,有时候还要内嵌,要考虑 py/cpp 与 java 互相调用,还有因此而来的效率与安全问题等等。我更希望是完美兼容我的系统,我不想去繁琐的调整运行环境,考虑各种兼容性,我想要直接引入包到我的 maven 里就能开箱即用。
3. 我去!chatGPT 好牛逼,人用的真爽,可是它不能给我的系统服务。它是大模型很好,但是我的系统不需要大模型!我需要的是一个我可以自定义,去针对我们业务环境的小模型来嵌入我们的系统,为系统服务!大模型是给人用的,但是不能内嵌我们的系统给我们的系统服务。
- 如果你有以上痛点,easyAI 就帮到你了!easyAI 是一个纯 java 原生算法引擎。其底层从矩阵运算,微分求导。中层到机器学习 强化学习等各种算法,然后最上层实现了图像视觉,自然语言全部包含在 easyAi 引擎内。
- 这种从最底层的基础运算到上层 AI 算法上下游的全囊括,使得 java 项目只要引入 easyAi 的 maven 包,就可以做到无缝调用,且可以不依赖任何第三库,让 java 程序员舒服的一批!
- 然而这还没完,easyAi 是引擎,是为 java 开发人员服务的,所以我要封装的更彻底!因此我又封装了完整的依赖于 easyAi 引擎的 AI 业务应用,共大家无脑调用!大家可以直接使用,或者修改后再融入到到自己的业务中。
- 到了此时 easyAI 才可以既满足了,了解算法知识,可以利用 easyAI 内置中底层算法工具深入开发的算法工作人员。也满足了只想利用现成应用业务代码,去满足自己系统内嵌,服务与自己系统 AI 的普通 java 业务开发人员的需求。
- 然后再强调一点,easyAI 并不是对主流算法 JAVA 的无差别重新实现,而是根据应用场景对主流算法进行了优化与魔改,让用户即便使用一台普通的电脑,就可开箱直接跑起来。并且保证普通服务器或个人电脑 CPU 下依然达到可用性能的流畅运行。 所以我的 “easy” 并不是只是指的简单,而是对算法进行了廉价,低成本方向的优化。如果我没有办法对某种算法做到廉价优化的算法实现,我也不会放入 easyAI 里面。
- easyAI 的核心理念,为 java 开发者服务是一方面,另一方面是专注于针对性业务,高性能,低成本优化方向的中小模型的算法引擎
综上,我们总结出以下的背景
-
广泛性:easyAI 可以为占据国内半数程序员以上的 JAVA 业务程序员开发 AI 业务,提供底层算法引擎动力。
-
深入性:easyAI 无任何依赖,从底层基础算法工具到上层算法模型全囊括,可以支持专业性的深度开发,也可提供简单直接的业务层嵌入 AI,而且这一点在持续扩张中。
-
廉价性,主要关注针对性可嵌入业务系统中小模型,低训练样本需求,低算力需求,这两个方向去优化算法模型是 easyAI 的方向。
-
兼容性,因为是原生 JAVA 研发,无任何第三库依赖,所以对 JAVA 项目,引入包后就开箱即用,无任何环境异常会导致的问题。
EasyAI 应用举例
-
easyAI 下载链接:https://gitee.com/dromara/easyAi
-
easyAI 主要 API 详情文档:https://wlhlwl.com/gw/easyAi.html
-
easyAI 详细视频教程:https://www.bilibili.com/video/av89134035
-
easyAI 是算法引擎,我们要直观感受它的强大,要从依赖它构建的应用化项目 DEMO 来看,这次我们拿出其中之一的应用案例 -- 强大的自主智能客服工具,支持自动与用户对话,并捕捉用户对话中的需求后自动生成订单!可自主解答用户问题或进行诱导消费!基于 easyAi 算法引擎构建智脑 ——myJecs
myJecs 分类配置及标注后台
- 登录页面
- 配置业务分类及分类订单必要关键信息
- 对分类业务填写训练样本并标注关键信息
- 聊天咨询标注直接输入表位置
myJecs 智能客服基本流程演示
- 用户第一次进行输入表达自己的想法
- myJecs 发现用户的描述缺少订单必要信息,则进行反问。用户接收到 myJecs 的反问,进一步补充的自己的想法
- 用户第二次输入信息依然不满足后台 14 分类法律咨询的订单关键信息要求,继续补充信息,最终完成订单信息补充生成订单。
- 用户输入想要咨询的问题,myJecs 对用户咨询的问题进行自主解答
以上是 myJecs 自定义业务接口的简单案例演示,具体安装部署及细节详情请到其主页下载: https://gitee.com/ldp_dpsmax/my-jecs
架构设计
常用底层算法模块
-
基础矩阵及线代计算模块:
1. 内置矩阵类,矩阵计算类,可以完成常用矩阵四则运算,奇偶性,多元线性回归,逻辑斯蒂回归,欧式距离,余弦相似性,im2col,逆 im2col,求代数余子式,求逆,求伴随矩阵,内积等,微分等一系列 api。
2.RGB 三通道矩阵,可进行图像转化,剪切,分块,生成图像矩阵等操作方便后续计算。
-
机器学习 - 聚类:
k 聚类,混合高斯聚类,密度聚类,学习向量量化聚类等
-
机器学习 - 分类及拟合: 多层前馈神经网络,多层循环神经网络,残差网络,多层残差循环神经网络,卷积神经网络,决策树,随机森林,k 最近邻等
-
启发式算法: 粒子群,蚁群,模拟退火
-
强化学习 动态规划,蒙特卡洛分析,马尔可夫,时序差分
常用上层算法模块
-
视觉图像: 图像识别,图片摘要,目标检测
-
自然语言: 语义理解,拆词分词,推理敏感及关键词,语句补全,语言交流
-
游戏机器人: 自主策略,自主行动
使用
1. 将项目下载后打包进本地 maven 库
2. 将 easyAi pom 文件引入地址引入项目
关注项目
对项目有什么想法或者建议,可以加我 qq 交流群 (222475213) 或 vx:thenk008,或者创建 issues,一起完善项目。
Dante Cloud 2.7.2.2 发布,正式加入 Dromara 开源社区
Dante Cloud 是一款企业级微服务架构和服务能力开发平台。首个全面拥抱 Spring Authorization Server 的版本,基于Spring Boot 2.7.2、Spring Cloud 2021.0.3、Spring Cloud Alibaba 2021.0.1.0、 Spring Authorization Server 0.3.1、Nacos 2.1.0 等最新版本开发,遵循SpringBoot编程思想,高度模块化和可配置化。具备服务发现、配置、熔断、限流、降级、监控、多级缓存、分布式事务、工作流等功能
平台定位
- 构建成熟的、完善的、全面的,基于 OAuth2.1 的、前后端分离的微服务架构解决方案。
- 面向企业级应用和互联网应用设计开发,既兼顾传统项目的微服务化,又满足互联网应用开发建设、快速迭代的使用需求。
- 平台架构使用微服务领域及周边相关的各类新兴技术或主流技术进行建设,是帮助快速跨越架构技术选型、研究探索阶段的利器。
- 代码简洁规范、结构合理清晰,是新技术开发应用的典型的、综合性案例,助力开发人员对新兴技术的学习和掌握。
[1]、特别说明
Dante Cloud (但丁,原 Eurynome Cloud) 正式加入 Dromara 开源社区。Dante Cloud 将继续秉承“简洁、高效、包容、务实”的理念,不断地深耕细作、去粗取精,用心打造一款适应未来信息化建设需求的精致产品。同时,与 Dromara 开源社区以及社区中所有的优秀人才一起互相扶持、并肩前行,创造更多、更好、更精的产品以回馈社会,促进软件开源的发展。
谢谢大家对 Eurynome Cloud 支持与厚爱,希望大家继续给与 Dante Cloud 以及 Dromara 开源社区关注与支持
[2]、为什么更名为 Dante Cloud
原项目名称 Eurynome Cloud,很多朋友都反映名字太长、读起来拗口、不容易记等问题。因此在加入 Dromara 开源社区之际,将名字进行了变更。
Dante,即但丁·阿利基耶里(公元1265年-公元1321年),13世纪末意大利诗人,现代意大利语的奠基者,欧洲文艺复兴时代的开拓人物之一,以长诗《神曲》(原名《喜剧》)而闻名,后来一位作家叫薄伽丘将其命名为神圣的喜剧。
他被认为是中古时期意大利文艺复兴中最伟大的诗人,也是西方最杰出的诗人之一,最伟大的作家之一。恩格斯评价说:“封建的中世纪的终结和现代资本主义纪元的开端,是以一位大人物为标志的,这位人物就是意大利人但丁,他是中世纪的最后一位诗人,同时又是新时代的最初一位诗人”
更名为 Dante Cloud,寓意本项目会像恩格斯对但丁的评价一样,在行业变革的时期,可以成为一款承上启下,助力企业信息化建设变革的产品。
[3]、本次更新内容
于项目名称的变更,为了降低和规避使用者产生不必要的误解,因此对项目代码、模块、Nacos配置、初始数据进行了同步修改。
- 主要更新
- 项目地址变更为:https://gitee.com/dromara/dante-cloud
- 主工程所有模块名称,使用最新名称进行了修改。
- 主工程所有代码所在的包,使用最新名称进行了修改。
- Nacos 配置文件名称及相关配置项,使用最新名称修改。
- 数据库初始化脚本默认数据,涉及项目名称的内容进行了修改。
- 其它更新
- 修复 MySQL 数据初始化脚本错误
- OkHttps 版本升级至 3.5.3
- Tencentcloud-sdk-java-sms 版本升级至 3.1.559
- 友情提示
- 因代码模块名和代码包名存在变更,直接更新代码会在IDE工具中产生冗余结构,可以直接删除,建议全新检出工程以彻底规避该问题。
- 因 Nacos 配置文件名称存在变更,需要重新导入 Nacos 配置。
[4]、Dante Cloud 2.7.X 主要变化
-
基于
Spring Authorization Server
深度定制:- 基于
Spring Data JPA
,重新构建Spring Authorization Server
基础数据存储代码,替代原有 JDBC 数据访问方式,破除Spring Authorization Server
原有数据存储局限,扩展为更符合实际应用的方式和设计。 - 基于
Spring Authorization Server
,在 OAuth 2.1 规范基础之上,增加自定义“密码”认证模式,以兼容现有基于 OAuth 2 规范的、前后端分离的应用。 - 基于
Spring Authorization Server
,在 OAuth 2.1 规范基础之上,增加自定义Social Credentials 认证模式,支持手机短信验证码、微信小程序、第三方应用登录。 - 遵照
Spring Security 5
以及Spring Authorization Server
的代码规范,进行 OAuth2 认证服务器核心代码的开发,遵照其使用 Jackson 反序列化的方式, 增加大量自定义 Jackson Module。 - 支持
Spring Authorization Server
的标准的Token加密校验方式外,还了增加支持自定义证书的 Token 加密方式,可通过配置动态修改 - 支持 OAuth2 OIDC 认证模式,补充前端 OIDC 认证相关配置操作,以及对应的 /userinfo 接口调用支持 和 客户端注册支持
- 支持 OAuth2 Authorization Code PKCE 认证模式
- 扩展
Spring Authorization Server
默认的Client Credentials
模式,实现 Refresh Token 的创建。 - 扩展
Spring Authorization Server
默认的Client Credentials
模式,实现真正的使用 Scope 权限对接口进行验证。 增加客户端 Scope 的权限配置功能,并与已有的用户权限体系解耦 - 自定义
Spring Authorization Server
授权码模式登录认证页面和授权确认页面,授权码模式登录采用数据加密传输。支持多种验证码类型,暂不支持行为验证码。
- 基于
-
代码结构的大规模调整和优化:
- 对原有代码进行了深度的“庖丁解牛”,严格遵照“单一职责”原则,根据各个组件的职责以及用途,将整个工程拆解细化为多个各自独立组件模块,在最大程度上降低代码间的耦合,也更容易聚焦和定位问题。
- 将通用化组件提取为独立工程,独立编译、按需选用,极大的降低系统主工程代码量。相关组件也已上传至 Maven 中央仓库,降低系统主工程工程代码编译耗时,改进和提升 CICD 效率,
- 原有主工程代码结构也进行了深化调整,代码分包更加合理,代码逻辑也更加清晰。
[5]、界面预览
[6]、额外说明
- 本项目以后将主要维护 `Spring Authorization Server` 版本,原有基于 `Spring Security OAuth2` 的版本已经移至 spring-security-oauth2 分支,可以从该分支或发行版页面获取历史版本继续使用。后期会根据 ISSUE 以及使用用户反馈情况,再行决定是否继续维护 `Spring Security OAuth2` 版本。
- 基于 Vue3、Vite2、Vuetify3、Pinia 等新版前端已发布,原有基于 Vue2、Vuetify2、Typescript 开发的前端代码已移至 vue2+vuetify2+typescript 分支
Dromara 开源社区
一、社区愿景
让每一位开源爱好者,体会到开源的快乐。
二、社区官网
https://dromara.org 是 Dromara 开源社区官方网站。
三、成员项目
Easy-Es 加入 Dromara 开源社区,健身教练开源的 ElasticSearch Plus
快讯快讯,热烈欢迎新加入Dromara开源社区的Easy-Es项目 - 更好用的elastic search搜索引擎框架,与Mybatis-plus一致的API,屏蔽语言差异,开发者只需要会MySQL语法即可完成对Es的相关操作,零额外学习成本。底层采用RestHighLevelClient,兼具低码,易用,易拓展等特性,支持es独有的高亮,权重,分词,Geo等。
Easy-Es由Dromara社区成员,拥有八年健身经验两年私教经历的健身大佬-老汉 开源,下面是老汉对Easy-Es的介绍,文末有彩蛋哦。
近年来,ES在搜索领域独领风骚,一家独大,不否认其功能确实足够强大,但其提供的API却十分反人类,对开发者而言使用起来非常不友好,人人愿得而诛之. 对比优雅的Mybatis-Plus,不禁使人潸然泪下.于是余有诗叹焉:
《韭菜》---老汉
键盘敲得肌无力, 秃头枸杞曾太拼.
编码未捷身先死, 长使老汉泪满襟.
然哭并没什么卵用,通过总结,我们不难发现ES在使用中存在如下痛点亟需解决:
- 语法难懂,需要学习
- 官方提供的RestHigh/LowLevelClient十分难用
- 编码量巨大,即便是非常简单的功能也需要大量代码才能实现
- 查询字段名魔法值满天飞,一旦字段名发生改变,容易因漏改而产生bug
- 使用门槛较高,通常需要中高级开发者才能驾驭
- 针对复杂查询,代码难以维护
- ...
为了解决如上诸多痛点,老汉我日以继夜,孤军奋战了一年,Easy-Es(后面简称EE)终于面世了,一举解决了如上所有问题,并将其开源献给给全球开发者,彻底解放开发生产力.
接入Easy-Es可以为开发者带来什么?
- 简单易用高效不用我多说了吧,MyBatis-Plus用户懂的都懂! 大把的时间节省出来,做...爱做的事情,真香!
- 使用门槛降低,就算是刚不懂Es的小白,也可以用EE开发各种功能
- 大幅减少代码量,实现相同功能平均可节省3-5倍代码量
- 降低重复代码量,杜绝魔法值,提升代码质量和可读性,便于维护
- 社区活跃,并配有专业答疑团队免费答疑,无忧售后
- 不玩虚的,所有功能永久全面开源,终生免费使用
项目架构(0.9.6及以下)
未来即将发布的0.9.7版本将引入插件模块,后续随着项目发展,会继续引入更多模块...
使用EE与RestHighLevelClient编码实际对比
需求:查询出文档标题为 "中国功夫"且作者为"老汉"的所有文档
// 使用Easy-Es仅需3行代码即可完成查询,若不考虑换行,最少仅需1行代码 LambdaEsQueryWrapper<Document> wrapper = new LambdaEsQueryWrapper<>(); wrapper.eq(Document::getTitle, "传统功夫").eq(Document::getCreator, "码保国"); List<Document> documents = documentMapper.selectList(wrapper);
// 传统方式, 直接用RestHighLevelClient进行查询 需要11行代码,还不包含解析JSON代码 String indexName = "document"; SearchRequest searchRequest = new SearchRequest(indexName); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); TermQueryBuilder titleTerm = QueryBuilders.termQuery("title", "传统功夫"); TermsQueryBuilder creatorTerm = QueryBuilders.termsQuery("creator", "码保国"); boolQueryBuilder.must(titleTerm); boolQueryBuilder.must(creatorTerm); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); searchSourceBuilder.query(boolQueryBuilder); searchRequest.source(searchSourceBuilder); try { SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); // 然后从searchResponse中通过各种方式解析出DocumentList 省略这些代码... } catch (IOException e) { e.printStackTrace(); }
- 以上只是简单查询演示,实际使用场景越复杂,效果就越好,平均可节省3-5倍代码量
- 传统功夫,点到为止! 上述功能仅供演示,仅为Easy-Es支持功能的冰山一角
接入顾虑粉碎
在正式将EE接入至生产环境之前,您肯定有不少顾虑,比如性能,安全,拓展性等,毕竟本框架没有阿里等大厂背书,也不是什么饶有名气的开发者出品,开发者凭什么相信?既然有信心发布,那我自然也是有备而来.
- 性能:实测与直接使用RestHighLevelClient相比,EE在查询类接口,首次查询性能平均损耗10ms左右,后续查询如果是在同一索引上进行,由于本地缓存生效,性能损耗低于10ms.其余增删改与直接使用原生无差异. 牺牲10毫秒,对用户而言是无感知的,但对开发而言,可以节省大量代码和时间,我认为这是值得的,基本上没有哪款ORM框架是不会损耗性能的,权衡利弊,主公们心理应该都会有答案.
- 安全:所用套件均来自ES官方和Spring官方,无其它多余依赖,足够轻量,核心原理只是转换,相当于一个翻译或者中介,并无其它涉及安全类的操作,所以有理由认为使用EE是相对安全的.
- 拓展性:EE底层用的就是Es官方提供的RestHighLevelClient,我们只是对RestHighLevelClient做了增强,并没有改变减少或是削弱它原有的功能,并且提供了原生查询,半原生查询,混合查询等多种模式,可覆盖几乎全部MySQL支持的功能和100%的ES支持功能,所以您无需担心其拓展性.
- 社区: 本项目已捐赠予国内饶有影响力的Dromara社区,并拥有非常多优秀且活跃的开发者长期维护.
以上测试数据及更详细介绍可参见Easy-ES官网
尽管目前Easy-Es还处于新生儿状态,但由于站在巨人的肩膀上(RestHighLevelClient和Mybatis-Plus),这是一款出道即巅峰的框架,这么说并不是说它写得有多好,而是它融合了两款目前非常优秀框架的优点,这决定了它起点的高度,
未来我们将会根据用户使用反馈不断优化现有功能,并持续引入尚未集成的ES功能,努力覆盖100%ES功能,而非通借助原生/混合查询能力,如此便可最大程度减少用户工作量,彻底把简单,易用,方便留给用户,把复杂留给框架.
我们致力于成为全球最受欢迎的ElasticSearch搜索引擎开发框架,让天下没有难用的ES.
开源不易,如果您愿意支持我们,不妨帮我们在GItee | Github 点个Star,支持一下开源精神,有了您的支持,我们将会更有动力坚持初心,持续回报每一位开发者,也会让更多开发者看到并加入我们,让EE走得更远,非常感谢!
若有收获,就点个赞吧
最后小编发福利啦:
欢迎给猛男大佬的项目点赞!!
https://github.com/dromara/easy-es
https://gitee.com/dromara/easy-es
flutter doctor出现问题 [!] Android toolchain - develop for Android devices (Android SDK version 28.0.3) X Android license status unknown. Try re-installing or updating your Android SDK Manager. 的解决方案
首先,问题描述:
Flutter doctor Doctor summary (to see all details,run Flutter doctor -v): [√] Flutter (Channel stable,v1.5.4-hotfix.2,on Microsoft Windows [Version 10.0.17134.765],locale zh-CN) [!] Android toolchain - develop for Android devices (Android SDK version 28.0.3) X Android license status unkNown. Try re-installing or updating your Android SDK Manager. See https://developer.android.com/studio/#downloads or visit https://Flutter.dev/setup/#android-setup for detailed instructions. [√] Android Studio (version 3.2) [√] VS Code (version 1.34.0) [!] Connected device ! No devices available ! Doctor found issues in 2 categories.
解决办法:
1、 Android SDK version 28
Android Studio -> SDK Manager -> SDK Platforms tab -> 选择 Android 9.0 Pie 并安装
2、Android BuildTools version 28.0.3
Android Studio -> SDK Manager -> SDK Tools tab -> 选择右下角 Show Package Details -> 在 Android SDK Build-Tools 里选择 28.0.3 并下载
然后重启Android studio,再在cmd里输入命令即可
关于Android TV 开源社区和android tv开发的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于2024 第一弹,JAVA 原生 AI 算法引擎 EasyAI 加入 Dromara 开源社区、Dante Cloud 2.7.2.2 发布,正式加入 Dromara 开源社区、Easy-Es 加入 Dromara 开源社区,健身教练开源的 ElasticSearch Plus、flutter doctor出现问题 [!] Android toolchain - develop for Android devices (Android SDK version 28.0.3) X Android license status unknown. Try re-installing or updating your Android SDK Manager. 的解决方案等相关内容,可以在本站寻找。
本文标签: