教程005-跳转系统源码[6.x版本默认跳转]
背景¶
之前的方案是在 .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 工程都会报错。
所以这里提供了一个恢复 android.jar 的任务。并且恢复后,只要你不重启 android studio,也可以正常跳转源码。
恢复 android.jar¶
打开 scripts/android-build.gradle ,执行任务 restoreAndroidSdk,如下:
这里我们发现,恢复 android.jar 之后依然可以正常跳转源码。
重要¶
删除 android.jar 是非常危险的一件事情,所以希望执行 deleteAndroidSdk 之后,要接着执行 restoreAndroidSdk 。 保证你后续能正常使用别的 android 工程。
只要你不重启 android studio ,只需要执行一个 deleteAndroidSdk 和 restoreAndroidSdk 。