Lỗi Kotlin: Không thể tìm thấy org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7


101

Tôi đã cài đặt plugin Kotlin vào ứng dụng của mình (v. V1.1.1-release-Studio2.2-1) và sau đó chọn "Định cấu hình Kotlin trong Dự án". Tôi đã chọn trình biên dịch và phiên bản thời gian chạy 1.0.7. Kotlin đã cập nhật các tệp Gradle của tôi. Bây giờ khi tôi cố gắng xây dựng trong tôi nhận được:

Lỗi: Đã xảy ra sự cố khi định cấu hình dự án ': app'. Không thể giải quyết tất cả các phụ thuộc cho cấu hình ': app: _debugApkCopy'. Không thể tìm thấy org.jetbrains.kotlin: kotlin-stdlib-jre7: 1.0.7. Yêu cầu bởi:

MyApplication: ứng dụng: không xác định

Tôi không chắc những gì tôi đang thiếu ở đây.


2
Gửi cấp dự án của bạngradle
Patel Pinkal

Đây là cách bạn bổ sung hỗ trợ Kotlin dành cho Android: kotlinlang.org/docs/reference/using-gradle.html
IgorGanapolsky

Câu trả lời:


159

thay thế

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

với

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

Vì phiên bản với jre là tuyệt đối, chỉ cần thay thế và đồng bộ hóa dự án

Tài liệu chính thức ở đây Cảm ơn vì liên kết @ ROMANARMY

Mã hóa vui vẻ :)


1
Một số thông tin hữu ích trong tài liệu về jdk và jre.
R0MANARMY

Tôi tin rằng một ngày nào đó đội ngũ Android sẽ làm cho mọi việc dễ dàng hơn một chút không nhiều chỉ là một chút hoặc ít nhất họ sẽ viết những thay đổi lớn trong changelog với đậm thay vì chôn nó sâu vào trang web để được khai thác ra :))
Farid

11
Tôi đã mất cả phút nhìn chằm chằm để nhận ra sự khác biệt giữa jrevà - Chắc hẳn tôi đã jdkgià đi.
James Wang,

32

Ở cấp độ Dự án build.gradlechỉ sử dụng phiên bản này

ext.kotlin_version = '1.3.31'

Xóa các phiên bản khác

Điều này sẽ chỉ hoạt động với phiên bản mới nhất của android studio 3.4

CẬP NHẬT: Cố gắng sử dụng phiên bản kotlin mới nhất với Android studio mới nhất để tránh lỗi.


22
Một câu trả lời chỉ định một phiên bản ma thuật để sử dụng, không cần giải thích, không phải là tất cả những gì hữu ích và thậm chí còn trở nên ít hữu ích hơn theo thời gian. Bạn có đề xuất nâng cấp từ phiên bản thấp hơn không? Hay hạ cấp từ phiên bản cao hơn vì phiên bản cao hơn có lỗi?
Don Hatch

3
@DonHatch câu trả lời này đã được đưa ra vào tháng 3 cho android studio 2.2, lỗi được đề cập ở trên trong câu hỏi. Nó không dành cho android studio 3.0 trở lên.
Patel Pinkal

@ 0xalihn câu trả lời dưới đây có một giải pháp đúng mà không cần số phiên bản kỳ diệu
Lou Morda

@PatelPinkal bạn có thể cập nhật câu trả lời của mình cho phiên bản studio android mới nhất không.
Arbaz.in

1
tôi đã cập nhật câu trả lời theo phiên bản mới nhất của Android studio
Arbaz.in

21

Việc tách kotlin-stdlibthành kotlin-stdlib-jre7kotlin-stdlib-jre8chỉ được giới thiệu với Kotlin 1.1, đó là lý do tại sao sự phụ thuộc không thể được giải quyết, phiên bản gói chỉ đơn giản là không tồn tại.

Có vẻ như cập nhật tệp dự án của bạn không thành công tại một số điểm và đặt phiên bản Kotlin thành 1.0.7. Nếu đây là một dự án mới và không có gì ngăn cản bạn sử dụng 1.1.1, tôi sẽ chuyển sang đó. Vấn đề của bạn sẽ biến mất sau khi làm điều này.


3
Cảm ơn bạn đã giải thích. Một số câu trả lời nói rằng sử dụng 1.1.1 mà không có lời giải thích, điều này sẽ khiến các câu trả lời nhanh chóng trở nên vô dụng trong tương lai.
Don Hatch

12

Trong tệp "build.gradle", hãy thay đổi phiên bản Kotlin hiện tại ở dòng đó và nhấn synk:

ext.kotlin_version = '1.1.1'

/// Điều đó sẽ giống như sau:

// Tệp xây dựng cấp cao nhất nơi bạn có thể thêm các tùy chọn cấu hình chung cho tất cả các dự án con / mô-đun.

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
    }
}

8

Bắt đầu với Kotlin 1.1.2, các phụ thuộc với nhóm org.jetbrains.kotlinđược giải quyết theo mặc định với phiên bản lấy từ plugin được áp dụng. Bạn có thể cung cấp phiên bản theo cách thủ công bằng cách sử dụng ký hiệu phụ thuộc đầy đủ như:

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

Nếu bạn đang nhắm mục tiêu JDK 7 hoặc JDK 8, bạn có thể sử dụng các phiên bản mở rộng của thư viện chuẩn Kotlin chứa các hàm mở rộng bổ sung cho các API được thêm vào trong các phiên bản JDK mới. Thay vì kotlin-stdlib, hãy sử dụng một trong các phần phụ thuộc sau:

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

6

Một giải pháp mới nếu bạn sử dụng Android Studio 3.2, tôi đã giải quyết vấn đề này bằng cách thêm mavenCentral () vào build.gradle của dự án:

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()
    }
}

Bạn nên thêm dòng như thứ tự này, ghi có cho câu trả lời này


4
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" }
    }
}

Bạn có thể giải thích thêm về cách điều này cải thiện câu trả lời của Mihail Salari, dựa trên đó nó dường như được dựa trên.
Nemo,

3

Nếu bạn đang sử dụng Android Studio 3.2 trở lên, thì vấn đề sẽ được giải quyết bằng cách thêm google () & jcenter () vào build.gradle của dự án:

repositories {
        google()
        jcenter()
}

2

Đây là những gì làm việc cho tôi: Sử dụng 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/'
    }
  }
}   

2

Tôi đã giải quyết vấn đề này bằng cách sử dụng bỏ chọn tùy chọn Làm việc ngoại tuyến trongSettings

nhập mô tả hình ảnh ở đây


1
  1. Vui lòng kiểm tra phiên bản Kotlin hiện tại của bạn trong đường dẫn bên dưới,

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

thay đổi thành phiên bản đó (1.0.5)trong tệp gradle cấp độ dự án.

Bạn có thể thấy trong đường dẫn trên của mình không đề cập đến bất kỳ Java nào - jre version, vì vậy hãy xóa trong tệp gradle cấp ứng dụng của bạn như bên dưới,

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

1

build.gradle (Dự án)

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

Một số thư viện yêu cầu gradle cập nhật . Nhu la:

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

GL


0

Trong trường hợp một phần phụ thuộc (bắc cầu) vẫn sử dụng jrebiến thể của thư viện Kotlin, bạn có thể buộc sử dụng jdkbiến thể với sự trợ giúp của chiến lược phân giải:

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'.")
                }
            }
        }
    }
}

0

Các bước đơn giản:

  1. Nhấp vào Tệp> Cấu trúc Dự án

  2. Nhấp vào Phụ thuộc> Tìm và nhấp vào org.jetbrains.kotlin: kotlin-stdlib-jdk7: 1.3.21 (hoặc bất kỳ phiên bản hiện tại của bạn là gì)

  3. Trong phần Chi tiết> cập nhật, nhấp vào [biến cập nhật] [cập nhật phụ thuộc]

  4. Bấm Ok

Trân trọng


0

Sau khi sửa phiên bản build.gradle, nó bắt đầu hoạt động từ 4.0.0 đến 3.5.0

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.