当前位置: 首页 > 知识库问答 >
问题:

如果我只是用Kotlin写作,我的Android Studio需要升级到Java 8吗?

卢涵畅
2023-03-14

我在做一个老项目,它使用Java。它基于Java7。但现在所有的Kotlin类都用于新代码。

在我们的格拉德尔

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

我只是好奇,如果我要继续写Kotlin,是否需要升级到Java8?

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

https://developer.android.com/studio/write/java8-support,看起来这样做的唯一原因是如果我们打算在Java8中编写。但是我很好奇,想避免不升级和错过一些新的Java优化,这些优化可能有益于Android中的静态编程语言项目?

共有1个答案

岳和泽
2023-03-14

是的,您仍然应该升级到Java 8。这主要是因为许多现代版本的关键库,如okhttp 3.13和更高版本,现在需要Java 8。此外,所有最近的AndroidX-ktx工件,例如Fragment的Fragment ktx和WorkManager的工作运行时ktx都需要Java 8。

在Android的Java 8支持博客帖子中:

即使您正在编写100%的Kotlin代码,Android的开发工具链和对较新Java语言功能的VM支持仍然很重要。Java的新版本在字节码和VM中带来了更高效的构造,Kotlin可以利用这些构造。

因此,随着对Java8的通用工具链支持不断改进,静态编程语言代码生成的字节码也将不断改进。

 类似资料:
  • 我想使用进行AppIndexing。我应该使用,但当我在Android Studio中打印出时,我只有SHA1。 最大的问题是,为什么Android Studio只在我从Gradle打印时列出调试键,为什么它说?知道吗? 顺便说一句,这个问题和建议的副本没有关系。 回答jyomin 2的问题。我希望它也能帮助别人。 null 小心!!! 如果您在密钥库中有多个密钥,它可能不会为您提供与给定应用程序

  • 可以通过以下方式创建上下文: null null 或者我使用SpringBoot,有@SpringBootApplication a是添加以下所有内容的方便注释: @Configuration将类标记为应用程序上下文的bean定义的源。@EnableAutoConfiguration告诉Spring Boot根据类路径设置、其他bean和各种属性设置开始添加bean。通常情况下,您会为Spring

  • 我不确定我的Flink应用程序是否需要水印。什么时候有必要? 如果我不需要它们,水印策略的目的是什么。noWatermarks()?

  • 我正在用C编写一个程序。为了简单起见,我们可以说:有几个变量,许多线程都可以读写。每次写入其中一个时,它都是通过原子交换(GCC原子操作、同步和交换)写入的。我是否需要在每次读取其中一个变量时使用原子负载,或者原子写入是否足以避免在写入过程中读取数据? 注意,需要使用其中一个变量的数据的任何位置都会首先复制值: 我的问题不是关于数据竞赛,也就是说我不担心我会丢失数据。我担心的是,在我阅读它的过程中

  • null 对于#1,没有人应该每次入住都登录,因为SPA1、SPA2和MVCApp1基本上都有不同的最终用户。我们不需要SSO。对于#2,不相关,因为我们永远不会允许这样。 这意味着我们有一个IdentityServer4项目,感觉有点矫枉过正,很难调试。比如用户将auth服务器而不是应用程序作为书签,重定向随机失败,等等。 我的问题是,我可以在API中切换到用户身份验证,然后杀死这个身份服务器吗