我通过选中Android Studio 3中的“ include kotlin”框创建了一个新项目,并且在开箱时编译时出现错误
"Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7..."
我确保所有插件都是最新的,并且正确安装了Android SDK。
我该如何解决这个错误?
我通过选中Android Studio 3中的“ include kotlin”框创建了一个新项目,并且在开箱时编译时出现错误
"Failed to resolve: org.jetbrains.kotlin:kotlin-stdlib-jre7..."
我确保所有插件都是最新的,并且正确安装了Android SDK。
我该如何解决这个错误?
Answers:
kotlin-stdlib-jre[7/8]
不久前已弃用,此后已删除。弃用说明一直保留到1.2.71为止,这是发布这些工件的最新版本。官方弃用通知可以在此处找到。使用任何不推荐使用的版本(在删除之前)也应至少在Android Studio和IntelliJ中产生警告。
使用kotlin-stdlib-jdk7
代替。与kotlin-stdlib-jre7
(除较新的)依赖项相同,但已将其重命名为kotlin-stdlib-jdk
。kotlin-stdlib-jre
现在不再维护为单独的依赖项。
IntelliJ和Android Studio当前都使用生成新项目kotlin-stdlib-jre7
;这可能是一个错误。他们可能尚未更新项目生成器。因此,您必须手动将依赖项替换为可用的依赖项,直到他们解决此问题。这取决于Kotlin插件。如果尚未更新,请进行更新。我还没有检查是否已打补丁-如果已打补丁,那只能解决创建新项目的问题。对于从旧版本进行更新,其余答案仍然适用
如果您使用的是1.2.71或更低版本,并且要升级到1.3.0或更高版本,则自然必须这样做。
这些是自Kotlin 1.3.0起新的有效依赖项:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
$kotlinVersion
包含版本或硬编码版本(即1.3.0
)的变量在哪里
另外,您可以使用“普通” stdlib(kotlin-stdlib
)代替特定于JDK的版本。但是您必须以任何一种方式更改依赖关系,因此,我建议您使用kotlin-stdlib-jdk7
,或者如果您打算使用Java 8,kotlin-stdlib-jdk8
依赖关系的最新版本也可以在这里找到。jdk7,jdk8和特定于版本的stdlib都遵循相同的版本(根据此编辑-将来可能会更改,但是在更改发生之前可能会出现通知),因此您是否检查jdk8,jdk7或通常,所有版本都应该在stdlib工件之间通用。
相同的实际解决方案也适用于其他构建系统,但是代码不同。由于构建系统很多,因此我将不包括所有构建系统,但重点是将工件从更改kotlin-stdlib-jre[num]
为kotlin-stdlib-jdk[num]
(当然没有括号)。或者,如前所述,kotlin-stdlib
。
独立于构建系统,它基于对Maven Central和类似存储库的访问。如果您的构建系统不支持它,并且/或者违反了Maven样式的约定和存储库,那么您将必须找到适合您的构建系统的方法。
使用org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version
或org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version
(取决于您最初使用的版本)代替。
build.gradle
模块。如果您使用其他构建系统,则需要找到该系统的适当代码。除了更改版本外,关键点将更改kotlin-stdlib-jre7
为使用的位置kotlin-stdlib-jdk7
(或8)。
从build.gradle中删除以下行:
implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
在build.gradle中添加以下行:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
在项目级别更新版本build.gradle:kotlin version ='1.3.0'
通常,请在以下位置检查可用的工件
https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib-jdk7 https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib-jre7 https://mvnrepository.com/人工制品/org.jetbrains.kotlin/kotlin-stdlib-jdk8 https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-stdlib-jre8