跳转至

教程005-跳转系统源码[6.x版本默认跳转]

背景

Tip

更新到 6.x 以上版本,即可默认跳转。

不推荐使用此教程[教程005-跳转系统源码]方案,请更新至最新版本,早更新早享受。

详细可参考 教程008-跳转系统源码之进阶版

之前的方案是在 .iml 文件中重新给 android sdk 排序,这个方案其实也蛮好的。

但 Android Studio 会有各种bug,有时候是不生成 .iml 或者有时候生成的路径很奇怪。而且重新排序之后,也有跳转不正确的时候。

最近升级以下版本之后彻底不生成 .iml 了,所以之前的方案完全不能用了。

Android Studio Iguana | 2023.2.1 Patch 2
Build #AI-232.10300.40.2321.11668458, built on April 4, 2024

那如果这个工程不能跳转 framework 源码,只能跳转到 android.jar 就没有任何意义了。

所以尝试新的方案,比如改 bootstrapClasspath 等,但试下来结果不尽人意。

最终使用了非常暴力,但很好用的方案。

首先,我们如果不做任何事情,跳转代码是这样的:

可以见到,跳转到了 android.jar 里,非常的不友好!

删除 android.jar

打开 scripts/android-build.gradle ,执行任务 deleteAndroidSdk,如下:

可以看到,执行完任务 deleteAndroidSdk 之后已经能跳转到正确的源码了。

但是这一步我们是把

~/Android/Sdk/platforms/android-34/android.jar

直接改成:

~/Android/Sdk/platforms/android-34/android.jar.backup

非常危险,如果你忘记这件事,后面再打开任何一个 android 工程都会报错。

所以这里提供了一个恢复 android.jar 的任务。并且恢复后,只要你不重启 android studio,也可以正常跳转源码。

恢复 android.jar

打开 scripts/android-build.gradle ,执行任务 restoreAndroidSdk,如下:

这里我们发现,恢复 android.jar 之后依然可以正常跳转源码。

重要

删除 android.jar 是非常危险的一件事情,所以希望执行 deleteAndroidSdk 之后,要接着执行 restoreAndroidSdk 。 保证你后续能正常使用别的 android 工程。

只要你不重启 android studio ,只需要执行一个 deleteAndroidSdk 和 restoreAndroidSdk 。

评论