如何显示从Android库反编译的Kotlin代码

我写了一个已上传到私人服务器的库。 当我将库作为依赖包含在我的应用程序项目中,并查看其中一个库类的源代码时,源代码实际上并未反编译。 它只显示类名和方法。 例如:

package com.example.library.ui public final class RoundedDrawable public constructor() : android.graphics.drawable.Drawable { public final var backgroundColor: kotlin.Int /* compiled code */ // ... other similar fields public open fun draw(canvas: android.graphics.Canvas): kotlin.Unit { /* compiled code */ } // ... other similar functions } 

正如你所看到的,它只显示/* compiled code */注释,而不是完整的源代码。 有一个选项提交给“反编译为Java”; 哪些工作,但我宁愿看到Kotlin的来源。 这可能吗?

我发现类似的问题 ,解释如何显示原始的Java代码,但没有为Kotlin。

你在用Gradle吗?

您需要下载图书馆的资源 :

 idea { module { downloadJavadoc = true downloadSources = true } } 

如果find附带的源文件,IntelliJ将在查看.class文件时使用这些文件。

使用Maven,你可以从工具窗口中点击鼠标右键 – >下载资源

除此之外,反编译一个.class文件到Kotlin是不可能的,并且有很好的结果。 Despector有一个非常粗糙的Kotlin“反编译器”。