【问题标题】:Kotlin Error : Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.0.7Kotlin 错误:找不到 org.jetbrains.kotlin:kotlin-stdlib-jre7:1.0.7
【发布时间】:2017-08-08 04:19:17
【问题描述】:

我将 Kotlin 插件安装到我的应用程序中(v.v1.1.1-release-Studio2.2-1),然后选择“在项目中配置 Kotlin”我选择了 1.0.7 的编译器和运行时版本。 Kotlin 更新了我的 Gradle 文件。现在,当我尝试构建时,我得到:

错误:配置项目 ':app' 时出现问题。 无法解析配置 ':app:_debugApkCopy' 的所有依赖项。 找不到 org.jetbrains.kotlin:kotlin-stdlib-jre7:1.0.7。 要求:

MyApplication:app:unspecified

我不确定我在这里缺少什么。

【问题讨论】:

标签: android kotlin android-gradle-plugin


【解决方案1】:

替换

implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

由于带jre的版本是absolute,所以直接替换同步项目

官方文档here感谢链接@ROMANARMY

【讨论】:

  • docs 中有关 jdk 和 jre 的一些有用信息。
  • 我相信有一天 Android 团队会让事情变得更简单一点,而不是一点点,或者至少他们会用粗体在变更日志中写下重大更改,而不是将其深埋在待挖掘的网站中: ))
  • 我花了整整一分钟的时间才发现jrejdk 之间的区别——我一定是老了。
  • 我应该搜索哪个文件?
【解决方案2】:

在项目级别build.gradle 仅使用此版本

ext.kotlin_version = '1.3.31'

删除其他版本

这仅适用于最新版本的 android studio 3.4

更新:尝试使用最新版本的 kotlin 和最新的 Android Studio 以避免错误。

【讨论】:

  • 一个指定要使用的魔术版本的答案,没有解释,并不是很有帮助,而且随着时间的推移变得越来越没有帮助。您是否建议从较低版本升级?还是因为高版本有bug而从高版本降级?
  • @DonHatch 这个答案是在 3 月为 android studio 2.2 给出的,它在问题中提到了上面的错误。它不适用于 android studio 3.0 或更高版本。
  • @0xalihn 回答下面有一个没有魔法版本号的正确解决方案
  • @PatelPinkal 你能更新你的答案以获得最新的 android studio 版本吗?
  • 我根据最新版本的 Android Studio 更新了答案
【解决方案3】:

kotlin-stdlib 拆分为kotlin-stdlib-jre7kotlin-stdlib-jre8 仅在 Kotlin 1.1 中引入,这就是无法解决依赖关系的原因,包版本根本不存在。

您的项目文件的更新似乎在某些时候失败,并将 Kotlin 版本设置为 1.0.7。如果这是一个新项目并且没有什么能阻止你使用 1.1.1,我会切换到那个。完成此操作后,您的问题应该会消失。

【讨论】:

  • 感谢您的解释。有几个答案说使用 1.1.1 没有解释,这将使答案在未来迅速变得无用。
【解决方案4】:

在“build.gradle”文件中,更改该行的当前 Kotlin 版本并按 synk:

ext.kotlin_version = '1.1.1'

/// 看起来像:

// 顶级构建文件,您可以在其中添加所有子项目/模块通用的配置选项。

buildscript {
    ext.kotlin_version = '1.1.1'
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

【讨论】:

    【解决方案5】:

    从 Kotlin 1.1.2 开始,组 org.jetbrains.kotlin 的依赖项默认使用从应用插件获取的版本进行解析。您可以使用完整的依赖表示法手动提供版本,例如:

    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    

    如果您的目标是 JDK 7 或 JDK 8,则可以使用 Kotlin 标准库的扩展版本,其中包含针对新 JDK 版本中添加的 API 的附加扩展函数。使用以下依赖项之一,而不是 kotlin-stdlib:

    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7"
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    

    【讨论】:

      【解决方案6】:

      如果您使用 Android Studio 3.2 的新解决方案,我通过将 mavenCentral() 添加到项目的 build.gradle 来解决此问题:

      buildscript {
          ext.kotlin_version = '1.3.0'
          repositories {
              mavenCentral()
              google()
              jcenter()
          }
          dependencies {
              classpath 'com.android.tools.build:gradle:3.2.1'
              classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
      
          }
      }
      
      allprojects {
          repositories {
              mavenCentral()
              google()
              jcenter()
          }
      }
      

      您应该将此行添加为该订单,贷记为this answer

      【讨论】:

        【解决方案7】:

        如果您以后从 Gradle 中删除 Jcenter,请将其添加到您的 gradle 中

        repositories {
                google()
                mavenCentral()
                maven { url 'https://jitpack.io' }
            }
        
        
        
        allprojects {
            repositories {
                google()
                mavenCentral()
                maven { url "https://jitpack.io" }
            }
        }
        

        所以重点是,在 gradle 中添加 mavenCentral()maven { url "https://jitpack.io" }

        【讨论】:

          【解决方案8】:
          buildscript {
              **ext.kotlin_version = '1.1.1'**  //Add this line
              repositories {
                  **jcenter()**                 //Add this line
                  google()
              }
              dependencies {
          //        classpath 'com.android.tools.build:gradle:3.0.1'
                  classpath 'com.android.tools.build:gradle:3.1.0'
          
                  // NOTE: Do not place your application dependencies here; they belong
                  // in the individual module build.gradle files
              }
          }
          
          allprojects {
              repositories {
                  **jcenter()**                 //Add this line
                  google()
                  maven { url "https://jitpack.io" }
              }
          }
          

          【讨论】:

          • 您可以详细说明这如何改进 Mihail Salari 的答案,它似乎是基于此的。
          【解决方案9】:

          如果您使用的是 Android Studio 3.2 及以上版本,则可以通过在项目的 build.gradle 中添加 google() 和 jcenter() 来解决问题:

          repositories {
                  google()
                  jcenter()
          }
          

          【讨论】:

            【解决方案10】:

            这对我有用: 使用 Gradle 4.8.1

            buildscript {
                ext.kotlin_version = '1.1.1' 
            repositories {
                jcenter()
                google()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:3.1.0'}
            }
            allprojects {
                repositories {
                    mavenLocal()
                    jcenter()
                    google()
                    maven {
                        url "$rootDir/../node_modules/react-native/android"
                    }
                maven {
                        url 'https://dl.bintray.com/kotlin/kotlin-dev/'
                }
              }
            }   
            

            【讨论】:

              【解决方案11】:

              我已经通过取消选择Settings中的离线工作选项解决了这个问题

              【讨论】:

                【解决方案12】:
                1. 请在下面的路径中检查您的 Kotlin 的当前版本,

                  C:\Program Files\Android\Android Studio\gradle\m2repository\org\jetbrains\kotlin\kotlin-stdlib\1.0.5

                在项目级 gradle 文件中更改为该版本 (1.0.5)

                您可以在上面的路径中看到没有提到任何 Java - jre version,因此在您的应用程序级别的 gradle 文件中删除如下,

                compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
                

                【讨论】:

                  【解决方案13】:

                  build.gradle(项目)

                  buildScript {
                      ...
                      dependencies {
                          ...
                          classpath 'com.android.tools.build:gradle:4.0.0-rc01'
                      }
                  } 
                  

                  gradle/wrapper/gradle-wrapper.properties

                  ...
                  distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
                  

                  某些库需要更新的 gradle。如:

                  androidTestImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines"
                  

                  GL

                  【讨论】:

                    【解决方案14】:

                    在我的情况下,通过在build.gradle 文件中添加以下行来解决问题:

                    allprojects {
                    repositories {
                                jcenter()                
                                google()
                             maven { url "https://jitpack.io" } //remember to add this line
                      }
                    }
                    

                    【讨论】:

                      【解决方案15】:

                      如果(传递)依赖项仍然使用 Kotlin 库的 jre 变体,您可以借助解析策略强制使用 jdk 变体:

                      configurations.all {
                          resolutionStrategy {
                              eachDependency { DependencyResolveDetails details ->
                                  details.requested.with {
                                      if (group == "org.jetbrains.kotlin" && name.startsWith("kotlin-stdlib-jre")) {
                                          details.useTarget(group: group, name: name.replace("jre", "jdk"), version: version)
                                          details.because("Force use of 'kotlin-stdlib-jdk' in favor of deprecated 'kotlin-stdlib-jre'.")
                                      }
                                  }
                              }
                          }
                      }
                      

                      【讨论】:

                        【解决方案16】:

                        修复 build.gradle 版本后,它开始工作 4.0.0 到 3.5.0

                        【讨论】:

                          【解决方案17】:

                          重新加载sdk也许问题就解决了

                          【讨论】:

                            【解决方案18】:

                            如果您在从 Github 拉取旧项目时遇到此错误。

                            1. 按从 Refractor 迁移到 AndroidX

                            2. 换行为implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" instead.

                            【讨论】:

                              【解决方案19】:

                              简单步骤:

                              1. 点击文件>项目结构

                              2. 点击依赖> 查找并单击 org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21(或您当前的任何版本)

                              3. 在详细信息 > 更新部分下,单击 [更新变量][更新 依赖]

                              4. 点击确定

                              【讨论】:

                                猜你喜欢
                                • 2018-10-24
                                • 2019-07-05
                                • 2020-02-26
                                • 2020-02-20
                                • 2019-05-07
                                • 1970-01-01
                                • 2020-11-15
                                • 2018-02-07
                                • 2020-08-29
                                相关资源
                                最近更新 更多