android:如果在同一个项目中使用,java和kotlin应该有相同的版本吗?

mfuanj7w  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(398)

我有一个旧的javaandroid项目,它使用我想扩展的java6编译器,但是我喜欢用kotlin编写新的“parts”(我在kotlin中没有xp)。所以,基本上既然java代码发出java6兼容的字节码,我应该配置kotlin编译器也发出java6兼容的字节码吗?所以,我的意思是,一般来说,java和kotlin版本之间应该有匹配吗?因为在我的想象中,jvm不能执行(至少不能正确执行)将哪些部分编译成不同的字节码的程序

9o685dep

9o685dep1#

是的,他们应该匹配。如果不这样做,编译器会抱怨某些函数。为java6编译的kotlin库可以在java8应用程序中正常运行,但是根据我的经验,如果一个项目以java8为目标,但是没有配置kotlin代码来编译为java8,那么编译器就会在某些类型的高阶函数和sam转换上陷入困境。
android项目中的kotlin默认编译成与java-6兼容的字节码,因此如果您坚持使用java6,就不必做任何事情。如果您想使用Java8特性,可以将其添加到 android 阻止 app/build.gradle :

kotlinOptions {
        jvmTarget = "1.8"
    }
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }

我建议使用java8,因为jetpack库的javadocs中的各种注解表明,它们计划最终需要java8。

相关问题