Android studio 使用JDK11无法生成javadoc问题解决-程序员秘密

技术标签: 环境配置  android模拟器  Android  

Android studio 使用JDK11无法生成javadoc问题解决

一. 背景

Android studio 升级到Arctic 后强制使用jdk11了,在通过 Tools->Generate Javadoc 时发现很多Android 系统得类找不到,配置如下:

image-20220322131516236

网上基本都这么配置的,用idea生成也没碰到问题,但在Android Studio上点击ok后出现如下错误信息:

image-20220322131638457

二. 当前系统环境

OS:Windows 11

Android studio:Arctic Fox | 20203.1 Patch 4

JDK: 11.0.13

随后去网上查询资料,得到的都是在 Other command line arguments 中添加android.jar的引用路径

-bootclasspath /Users/用户名/sdk/platforms/android-14/android.jar

所以 直接添加路径如下:

image-20220322132154927

点击确认,得到如下错误:

image-20220322132239138

也就是说JDK 11已经不支持这个 -bootclasspath这个命令选项了(从JDK9就已经没有了)

试了几个都不行,换个思路。

三. 解决方案

查了很久,看到一个和jdk11相关的问题,缺少tools.jar

https://www.klavor.com/dev/20210129-1001.html

他是通过 implementation files引用的,索性试一试

在需要生成Javadoc的模块中的build.gradle 引用android.jar

dependencies {
    

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation files('D:\\Users\\Administrator\\AppData\\Local\\Android\\Sdk\\platforms\\android-31\\android.jar')
    compileOnly files('libs/liba-release.aar')
    compileOnly files('libs/libb-release.aar')
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

再次执行

Tools->Generate JavaDoc

把刚添加的android.jar 的路径去掉,点击确定:

image-20220322132847563

大功告成!!!

四. 其他

Java 9 改进 Javadoc

https://www.runoob.com/java/java9-improved-javadocs.html

最明显能看到的不同就是,在右上角可以看到搜索功能:

Java 9及以后的版本 的 javadoc 的输出现在符合兼容 HTML5 标准。使用 jdk 9 javadoc 命令中的 -html5 参数可以让生成的文档支持 HTML5 标准

image-20220322134634477

五. JDK 11存在的问题

JDK 11通过此方式可以生成javadoc,但存在一个问题,那就是 生成的html 的搜索功能无法使用,会出现大量的undefined.undefined.xxx
如下图

image-20220328115511682

这些方法你就点不了了,无法索引到你所搜索的方法

解决方案:

换JDK版本为17.02

六. 更换Android default JDK

把设置翻遍了,也没有找到更换默认jdk的菜单选项,只能从其他途径下手,Android studio里面带的都是更换编译项目使用的sdk,在使用idea的ide时发现idea可以更换,如下图:

image-20220329162841269

但Android studio中没有(在加载出问题的时候才会有,正常不会有,很难碰到),下图是Android studio的右键菜单

image-20220329162950759

通过搜索配置文件发现,有一个地方记录了默认jdk的路径,那就是 C:\Users\用户名\AppData\Roaming\Google\AndroidStudio版本号\options\jdk.table.xml

这个文件不仅记录了默认jdk,编译jdk,依赖的sdk的路径,最大最小sdk版本等等等等。

那么我们可以直接把这个文件修改掉。但最后发现直接修改好像不太行(手动修改的方式可能有问题,不能简单的替换成我们自己的jdk),Android studio启动后会再次改为默认的jdk 版本。

idea同样存在 这个文件,通过更换idea的jdk默认版本信息,得到一个jdk.table.xml . idea的jdk.table.xml 存放在:C:\Users\用户名\AppData\Roaming\JetBrains\IntelliJIdea版本号\options\jdk.table.xml

右键-> Open Library Settings

image-20220329163745410

通过上面的路径拿到这个jdk.table.xml文件

直接替换Android studio的这个文件(先退出Android studio)

替换后打开Android studio,会看到如下界面

image-20220329164210775

同时,左边依赖项也没有了Java 和SDK

image-20220329164243635

点击configure,出现下图,选择刚刚安装的jdk的版本

image-20220329164338902

选择完成之后,左边依赖框也会出现如下图所示

image-20220329164727120

到此为止,默认的jdk算是更换完成了,但此时Android SDK还没有配置,项目无法编译,带个红叉

image-20220329165137680

点击 File->Project Structure

image-20220329165101742

然后选择sdk的路径就行了,重启一下Android studio

如果不行,点击上图中的Gradle Settings,那么再配置一下

image-20220329165545170

如果还报错,那么就点击SDK管理的图标重新选择一下sdk的路径,总之,就是要把sdk列表刷出来

image-20220329165838929

点击edit

image-20220329165810326

点击next

image-20220329165916010

点击next

image-20220329165948707

等待一会儿

image-20220329170011643

点击finish

image-20220329170041176

然后再看左边依赖框中就有了Android SDK的依赖,这个时候jdk.table.xml 中就有sdk的信息了

image-20220329170147239

到此,我们就可以使用JDK 17.02生成Html5带搜索的Javadoc文档了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CSDNNETVIP/article/details/123826515

智能推荐

【Web】CSS(No.13)Css的基本样式(字体样式属性:字号、字体、粗细、风格;外观属性:文本颜色、行间距、水平对齐方式、首行缩进、文本的装饰)_Sherry Lupus的博客-程序员秘密

Css的基本样式CSS字体样式属性font-size:字号大小font-size属性用于设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位。其中,相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使用较少。具体如下:1em = 16pxfont-family:字体font-family属性用于设置字体。网页中常用的字体有宋体、微软雅黑、黑体等,例如将网页中所...

Kernel panic - not syncing: Attempted to kill init 解决办法_Break_myself的博客-程序员秘密

最近在VM上安装centos时候经常被这个问题虐,后来进入单用户模式在   kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quie    后面加上  enforcing=0  在进入系统就OK了,至于为什么出现这个问题,我认真的查找了资料,终于在群友的帮助下找到了一个突破点:swap分区,我没有使用swap分区,再重新安装系统

微信小程序&PHP 发送模板消息通知_阿……莫西林的博客-程序员秘密

首先,模板消息接口需写在后台服务器上。【追加!目前微信小程序 模板消息只能 本人触发 并发给本人。】2018.4.9修改 :1次提交表单可下发1条,多次提交下发条数独立,相互不影响;1次支付可下发3条,多次支付下发条数独立,互相不影响。小程序端根据模板信息,出到后台相应的值,还有formid或者prepay_id,通知人的openid。.w...

达拉崩吧的酒宴_zhj12399的博客-程序员秘密

1. 达拉崩吧的酒宴题目信息解答题目信息很久很久以前,巨龙突然出现,带来灾难带走了公主又消失不见,王国十分危险,世间谁最勇敢,一位勇者赶来大声喊:“我要带上最好的剑,翻过最高的山,闯进最深的森林,把公主带回到面前”……最后,英雄 达拉崩巴斑得贝迪卜多比鲁翁 ,他战胜了巨龙 昆图库塔卡提考特苏瓦西拉松 ,国王把公主 米娅莫拉苏娜丹妮谢莉红 嫁给了 达拉崩巴斑得贝迪卜多比鲁翁 。于是国王第二天要在 蒙达鲁克硫斯伯古比奇巴勒城 举办酒宴,一共准备了 N 桶酒。此时一位忠诚的仆人来报,有人在其中一桶酒里下

StackExchange.Redis 使用-发布订阅 (二)_weixin_30585437的博客-程序员秘密

使用Redis的发布订阅功能redis另一个常见的用途是发布订阅功能 。 它非常的简单 ,当连接失败时 ConnectionMultiplexer 会自动重新进行订阅 。ISubscriber sub = redis.GetSubscriber();GetSubscriber 方法返回一个 ISubscriber 类型的实例 。发布订阅功能没有数据库的概念,我们可以为其提供一个 a...

百度地图API详解之地图API加载方式_Dr_YINING的博客-程序员秘密

本文将向大家介绍百度地图API的两种不同加载方式:同步加载和异步加载。同步加载这是最常见的加载方式,开发者需要在页面的head标签内添加一个script标签,标签的src属性填写为地图API的地址:1scriptsrc="http://api.map.baidu.com/api?v=1.2">script>

随便推点

类和对象1--四个默认成员函数+运算符重载_类对象成员函数重载运算符声明_Rae8023的博客-程序员秘密

类的声明和定义 C++中的类的定义一般分为类的声明和类的实现部分。类的声明部分用来说明该类的成员(数据成员、成员函数),告诉使用者“干什么”。类的实现部分用来定义成员函数,该函数用来对数据成员进行操作,告诉使用者“怎么干”。class<类名>{ public: <成员函数或数据成员的说明> protected: <成员函数或数据成员的说明> private:

Dubbo与springboot的整合_装作很满意的博客-程序员秘密

前言公司最近要做一个新的项目,打算使用分布式的架构,目前最火的大概是dubbo和springcloud两家,最后使用了dubbo作为分布式的框架,然而同事一直以来都是使用springboot,所以看了一下dubbo的官方文档,又在网上查了一下资料,把整个过程记录一下。开发环境操作系统:win10IDE:IntelliJ IDEAUltimate必要工具:务必保证安装了jdk8...

Silverlight4中右键菜单实现-附源码下载_weixin_34242331的博客-程序员秘密

在发布Silverlight4 Beta版本和RC时 增加不少新的特性和控件. 类似在WinForm实现右键菜单ContentMenu功能. 在Silverlight 4中也有所体现.当初在Silverlight4还是beta版本时 就有很多人问我如何实现右键菜单功能. 当时beta版本更新只是增加两个右键点击事件.分别为:MouseRightB...

上下文无关文法_weixin_30493401的博客-程序员秘密

在计算机科学中,若一个形式文法G = (N, Σ, P, S) 的产生式规则都取如下的形式:V-&gt;w,则称之为上下文无关文法(英语:context-free grammar,缩写为CFG),其中 V∈N ,w∈(N∪Σ)* 。上下文无关文法取名为“上下文无关”的原因就是因为字符 V 总可以被字串 w 自由替换,而无需考虑字符 V 出现的上下文。一个形式语言是上下文无关的,如果它是由上下...

我们一起学shell之二:第一个shell脚本_first shell是什么_北洋的青春的博客-程序员秘密

上一章讲到我们主要以Bash Shell的形式进行讲解。我们所在的环境包括演示执行脚本的内容的服务器都是centos系统的,都是完全免费的。Centos与其商业版RHEL(Red Hat Enterprise Linux红帽)出自同样的源代码,不同的是CentOS并不包含封闭源代码软件和售后支持,大白话就是红帽要钱,Centos(开源的)不要钱!~~扯淡到此结束!!开始学习内容!!2.1第一个...

【报错解决办法】subprocess.CalledProcessError: Command ‘[‘dot‘, ‘-Tpng‘, ‘-O‘, ‘./data\\Digraph.gv‘]‘ return_qq_41937664的博客-程序员秘密

试了网上的一些方法都没有成功,最后,我在cmd中检测了一下dot的版本,才发现问题。具体操作是:打开cmd运行:dot -v出现问题:There is no layout engine support for “dot”…运行:dot -c没有提示(成功)再次运行dot -v结果如下图(成功)。详情也可参考:win10安装Graphviz再次执行上述测试代码,没有报错,nice~(base) PS C:\Users\HiFuture&gt; dot -vdot - graphviz ve

推荐文章

热门文章

相关标签