简体   繁体   中英

Converting Kotlin to Java

Can anyone help me about converting Kotlin code in Android Studio to Java ?

I went through the below process:

Tools >> Kotlin>> Decompile Kotlin to Java

But the "Kotlin to Java" option is disabled. What should I do?

在此处输入图像描述

Currently Tools >> Kotlin>> Decompile Kotlin to Java is enabled only for compiled Kotlin classes ( .class , not .kt extension) located at app/build/tmp/kotlin-classes/ after a successful build .

A note to the @Uriel Frankel 's workaround:

If Tools >> Kotlin >> Show Kotlin Bytecode >> Decompile button is disabled (or not shown) the Java Bytecode Decompiler plugin should be installed: Preferences >> Plugins >> search for Java Bytecode Decompiler` >> check the plugin & press OK .

工具 >> kotlin >> 显示 Kotlin 字节码 >> 反编译

Seems like a bug.

Tools -> Kotlin -> Decompile Kotlin to Java

Was actually disabled for me too even after a successful build ( In my side Android Studio v3.2 ) so, I went through this:

Click on the Kotlin ( Compiled class ):

Selected Tools -> Kotlin -> Show Kotlin Bytecode

Then kotlin bytecode window appeared:

在此处输入图像描述

Made JVM 8 Target as selected and then decompile gave me the java class.

Note that this happened when Java Bytecode Decompiler plugin was enabled on the Android Studio.

Update :

This however might have some issues even after converting to java and perhaps, we should wait for the newest releases.

I followed Onik's answer above.

The Java Bytecode Decompiler was automatically bundled. I opened the .class file in Android Studio, and selected Tools >> Kotlin>> Decompile Kotlin to Java.

After waiting several minutes, Android Studio told me

The file is too large: 50.78 MB. Showing a read-only preview of the first 2.56 MB

and it opened a file MyKotlinClass.decompiled.java, most of which is unintelligible to me.

MyKotlinClass is approximately 300 lines long. At this point, manually re-writing the file as Java code is looking like the better option.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM