0
点赞
收藏
分享

微信扫一扫

Android Studio中不能展开jdk源码的问题

文章目录

一、前言

有时候新建项目会出现jdk无法展开的情况。情况如下图:

在这里插入图片描述

现在项目基本上都是有kotlin环境的,所以使用Java写其实也没事儿。因为使用的java包其实都是调用的是kotlin包下面的,比如Stringkotlin的包是kotlin.Stringjdk的包是java.lang.String。所以不是非要调用jdk下面的包的话是没有问题的。但是假如自己新建一个lib。写java代码,或者某些插件生成java代码时候,凡是调用jdk库的代码就都会报错。如下

在这里插入图片描述

二、解决方式

首先这个问题跟jdk版本没有关系,跟windows、mac也都没有关系,跟哪一种jdk使用也没有关系(比如使用openjdk就会解决该问题)。主要问题是开发工具的问题,可能是某个bug。

主要修改.idea->misc.xml中的代码。位置如下:

在这里插入图片描述

这里看下有问题的代码内容是什么

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="DesignSurface">
    <option name="filePathToZoomLevelMap">
      <map>
        <entry key="app/src/main/res/layout/activity_main.xml" value="0.335" />
      </map>
    </option>
  </component>
  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="Android Studio default JDK" project-jdk-type="JavaSDK">
    <output url="file://$PROJECT_DIR$/build/classes" />
  </component>
  <component name="ProjectType">
    <option name="id" value="Android" />
  </component>
</project>

不同项目的这个文件会有不同。不过无需过多关注,这里注意nameProjectRootManager<component>标签中的project-jdk-name属性。可以看到如下代码:

project-jdk-name="Android Studio default JDK"

看到这个名字正是我们看到的不能展开的jdk的名字。这里只需要将该字段修改为正确的版本名字即可。比如1.81115即可。但是注意版本名字只需要标注大版本即可,不需要写上小版本,例如11.0.10。改完代码后关掉项目,重新打开即可。修改完的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="DesignSurface">
    <option name="filePathToZoomLevelMap">
      <map>
        <entry key="app/src/main/res/layout/activity_main.xml" value="0.335" />
      </map>
    </option>
  </component>
  <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
    <output url="file://$PROJECT_DIR$/build/classes" />
  </component>
  <component name="ProjectType">
    <option name="id" value="Android" />
  </component>
</project>

重新运行程序的效果如下:

在这里插入图片描述

另外需要注意下有时候程序会出现一个提示,说是选择的jdk版本不符合。让重新选择。问题如下:

11:54 上午	Project HelloWorld is using the following JDK location when running Gradle:
					/Users/rockey211119/Library/Java/JavaVirtualMachines/liberica-1.8.0_312
					Using different JDK locations on different processes might cause Gradle to
					spawn multiple daemons, for example, by executing Gradle tasks from a terminal
					while using Android Studio.
					More info...
					Select a JDK
					Do not show this warning again

在这里插入图片描述

这时候检查刚才的标签里面是否有default="true"属性,没有的话添加上即可。这种问题是没有办法通过修改重新设置版本号来解决的,例如以下的方式:

在这里插入图片描述

综合所述,猜测找不到jdk的问题应该是idea没有正确的将jdk匹配上的问题。当你检查过环境变量,版本等各种方式均无法解决该问题的时候,不妨尝试下本文提供的解决方式。

举报

相关推荐

0 条评论