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

为什么Kotlin插件为Android项目添加kotlin-stdlib-jre7(而不是kotlin-stdlib)参考

马博学
2023-03-14

Android Studio>New Project>Configure Kotlin in Project action将kotlin-stdlib-jre7的引用添加到gradle文件中。我希望kotlin-stdlib,因为我们Kotlin的目标JVM是1.6。

还没有找到很好的解释。例如。这个答案说明

kotlin-stdlib-jre7工件不应该在Android上工作,因为Android目前只支持Java6平台。针对Android时,应该使用kotlin-stdlib,它是为JRE6构建的

共有1个答案

雍光远
2023-03-14

Android支持Java7已经有好几年了。事实上,对Java8的部分支持正在进行中,一开始是通过Jack toolchain实现的,目前是通过desugaring在默认的toolchain中实现的。

因此,kotlin-stdlib-jre7非常好。

正如您在这个答案中看到的,kotlin-stdlib在1.1中获得了两个额外的扩展库kotlin-stdlib-jre7kotlin-stdlib-jre8。这些库为Java7和Java8添加了特定的特性,并将kotlin-stdlib作为传递依赖项。另请参见Kotlin1.1发行说明:

Java 8标准库支持

现在有了支持Java7和8中添加的新JDK API的标准库的不同版本。如果需要访问新的API,请使用kotlin-stdlib-jre7和kotlin-stdlib-jre8 maven工件,而不是标准的kotlin-stdlib。这些工件是kotlin-stdlib之上的微小扩展,它们将其作为一个可传递的依赖项带到您的项目中。

在当前版本的Android Studio中,Kotlin插件在项目中配置Kotlin时添加kotlin-stdlib-jre7作为依赖项,因为自2013年10月发布的Android Studio 0.3.2以来,Android Studio和构建工具以向后兼容的方式支持Java7。请参见Android是否支持JDK6或7。具体来说,发行说明中指出:

这个版本的主要特性是对Android KitKat的支持:

支持菱形运算符、多重捕获、资源尝试、开关中的字符串等语言功能。创建新项目时,可以指定源语言级别:

和:

 类似资料:
  • 昨天我更新了Android Studio版和Kotlin插件版。 Android Studio版本:3.1.2 Kotlin版本:1.2.41 当我使用此配置创建一个Android项目时,Kotlin编译器警告说 w:/home/ganeshtikone/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jr

  • 在 kotlin-stdlib-common 中,是否有任何开箱即用的随机性来源?是标准,还是基本当前时间毫的一些实现,我都可以用它来创建自己的随机数生成器?我找不到任何内容。 如果不存在,如果不设置自己的平台依赖实现,您将如何获得随机性的来源?这是我唯一需要的方法: 我试图让它与平台无关。

  • 我尝试使用Kotlin脚本将我的一个项目迁移到Gradle。 以下是我的步骤: 用这个替换 将gradle/包装器/gradle-wrapper.properties的更新为与此处相同 创建了相应的 设置到 此时Intellij检测到它并建议: 您可以将Gradle包装器配置为对源使用分发。它将为IDE提供Gradle API/DSL留档。 - gradle'hello-kotlin'项目刷新失败

  • 当我导入此接口并尝试调用方法时,它将失败,并出现以下错误: 我已经创建了一个intellij kotlin应用程序,它的工作是正确的。是新Kotlin gradle插件的bug吗?

  • 我想创建一个兼容Android和桌面的Kotlin项目。此项目需要绑定到C库。 我的理解是,我应该创建一个Kotlin多平台项目,并有一个公共代码,用JNI封装C库。 但是,静态编程语言/Native允许更轻松地与C库互操作,所以我想使用它。但是似乎静态编程语言/Native是一个平台(等于jvm或android),所以它不能用作通用代码。 有没有办法做我想做的事?我找不到任何简单的例子来做到这一

  • 我想向Kotlin项目添加一个额外的“源代码集”,该项目将包含集成测试。我看到过一些帖子,其中谈到为香草Java项目或Kotlin做这件事,但使用Groovy而不是Kotlin Gradle DSL。 总之,使用静态编程语言Gradle DSL: 如何添加可以包含Kotlin代码、Java代码的附加“源代码集” 我希望目录结构看起来像: 相关的: > https://ryanharrison.co