使用Android Studio查看源码时有些类是这样的提示:All packages are not available for download! The following packages are not available: - Package id sources;android-29
点击download,报错:all packages are not available for download package id sources android-29
这是因为使用了最新SDK 29版本,而谷歌新版SDK都是没有提供源码下载,要解决这个问题有两个解决办法:
- 修改app下的build.gradle 文件中的targetSdkVersion 29 compileSdkVersion 29两个地方的版本号修改为有源码的版本号,重新构建即可查看源码。
- C:\Users\[电脑用户名]\.AndroidStudio3.4\config\options\jdk.table.xml 修改这个文件中SDK版本为29的源码路径,把源码路径改为别的SDK版本源码路径。
在Android Studio的SDK管理界面可以看到最新版29的SDK是没有源码可以下载的,而其他版本都是可以下载源码的,所以才会出现有些java类无法查看源码的问题。
在SDK源码目录中也没有SDK29的源码
第二种方法更可取,因为不用去降低最高可支持的版本,下面将演示如何修改jdk.table.xml文件。
打开jdk.table.xml文件后发现API 29并没有设置源码:
然后找到API 28,sourcePath就是源码设置节点,已经设置好了源码路径:
既然API 29源码无法没有提供下载,那我们将API29的源码路径设置为API 28的就可以查看源码了,等以后API29的源码可以下载了再改回来就行了。
<sourcePath>
<root type="composite">
<root url="file://D:/androidSDK/sources/android-28" type="simple" />
</root>
</sourcePath>
改好后保存文件,然后重启Android Studio问题解决,如果文件修改没有错误,查看的时候还会跳转到class字节码文件上,然后需要再点一下右上角才能跳转到源码文件,这是因为缓存问题,重新创建一个项目测试下就知道了。
如果你不小心把 jdk.table.xml文件改乱了,无需担心,可以重新生成的。直接删除jdk.table.xml文件,然后按照下图的方式重新设置一遍SDK路径,一直next,直到完成。然后会在原来的目录下生成一个新的jdk.table.xml文件。