在用Android Studio开发App的时候,我们经常会看一些源码内部的实现方法,点击源码之后可能看到的是以下情形:
我们发现点开的是
.class
文件,而不是.java
文件,源码全都是抛出Stub,左上角提示Sources for 'Android API 28 Platform' not found.
,也就是没有找到Android28的API资源。
解决步骤:
1、检查对应版本SDK API Sources是否下载
打开Android Studio,点击Tools->SDK Manager
,找到SDK管理器,
发现没有下载源码资源,将
Sources for Android 28
前面的方框打钩,点击右下角OK
按钮,开始下载资源。下载完后,点击进入源码,有可能还是
.class
文件,依然看不到源码,这时我们进行下一步操作。
2、手动配置SDK信息
打开Mac的Finder(本文以Mac为例,Windows找到对应文件即可),点击菜单前往->前往文件夹
,输入/Users/username(你的Mac用户名)/Library/Preferences
,进去后找到当前正在使用的Android Studio版本配置目录,比如我的是Android Studio 3.2,
进入options
目录,找到jdk.table.xml
,打开后找到API 28的噢诶之位置,发现没有配置路径,
手动添加路径,添加后如下所示
<jdk version="2">
<name value="Android API 28 Platform" />
<type value="Android SDK" />
<homePath value="$USER_HOME$/Library/Android/sdk" />
<roots>
<annotationsPath>
<root type="composite">
<root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-28/data/annotations.zip!/" type="simple" />
</root>
</annotationsPath>
<classPath>
<root type="composite">
<root url="jar://$USER_HOME$/Library/Android/sdk/platforms/android-28/android.jar!/" type="simple" />
<root url="file://$USER_HOME$/Library/Android/sdk/platforms/android-28/data/res" type="simple" />
</root>
</classPath>
<javadocPath>
<root type="composite">
<root url="file://$USER_HOME$/Library/Android/sdk/docs/reference" type="simple" />
</root>
</javadocPath>
<sourcePath>
<root type="composite" >
<root url="file://$USER_HOME$/Library/Android/sdk/sources/android-28" type="simple" />
<root/>
</sourcePath>
</roots>
<additional jdk="1.8" sdk="android-28" />
</jdk>
上下拉动jdk.table.xml
,会发现里边有当前所有你已下载的SDK版本配置,如果想查看其他版本源码,在对应位置配置对应版本路径即可,然后将项目的compileSdkVersion
改为对应版本即可。
保存,重启一下Android Studio,再次进入就可以看到源码了。