Trình cắm Gradle của bên thứ 3 có thể là nguyên nhân


132

Sau khi cập nhật lên Android Studio 3.1, tôi nhận được thông báo lỗi này:

Dự án hoạt động tốt và đây chủ yếu chỉ là một cảnh báo, vì vậy câu hỏi của tôi là ý nghĩa của cảnh báo là gì và làm thế nào tôi có thể thoát khỏi nó?

Các phần có liên quan từ các tập tin lớp:

Đây là dự án của tôi build.gradle

buildscript {
    ext {
        kotlin_version = '1.2.31'
        anko_version = '0.10.4'
        room_version = '1.0.0'
        support_version = '27.1.0'
        firebase_version = '12.0.0'
        gms_version = '12.0.0'
    }

    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
        maven { url "https://jitpack.io" }
        maven { url 'https://dl.bintray.com/kotlin/kotlin-dev' }
    }
}

Và đây là build.gradletập tin ứng dụng của tôi :

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 27
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

1
theo suetracker.google.com/issues/74537216 vấn đề này được khắc phục trong AS3.2
Angel Koh

Build> Rebuild Projectlàm việc từ tôi
Zohab Ali

Câu trả lời:


143

Để giải quyết vấn đề, xóa Instant App Provision khỏi "Chạy cấu hình" và chỉ để lại Gradle-Aware Make.

Run -> Edit Configurations..

Cấu hình Run / Debug của tôi sau khi xây dựng thành công

Tôi có phiên bản thư viện AndroidStudio 3.1, Gradle Plugin 3.1.0và Kotlin 1.2.30.


5
Điều này thực sự hoạt động nhưng bất kỳ ý tưởng tại sao nó đã xảy ra và làm thế nào bạn đi đến giải pháp này.
nhục nhã

59
và vì một số lý do sau khi xóa Instant App Provisionsnó luôn trở về vị trí của nó.
hài lòng

3
Điều này có vô hiệu hóa chạy ngay lập tức?
Caleb_Allen

7
@Caleb_Allen không, nhưng dù sao cũng không ai sử dụng. Đây là dành cho 'ứng dụng tức thời', không phải chạy ngay lập tức
Tim

4
Đối với bất cứ ai mà điều này tiếp tục quay trở lại (như @humazed), tôi đã tìm thấy một cách khắc phục: Đầu tiên hãy đi Run > Edit Configurationslại. Sau đó đi đến Edit Defaultsbằng cách nhấp vào nút có biểu tượng cờ lê ở trên cùng. Chọn Android Appvà chỉ để lại Gradle-aware Makenhư trước. Lượt áp dụng.
b_yng

17

Tôi đã khởi động lại Android Studio và vấn đề biến mất.

Bấm vào Tệp -> Bộ nhớ cache không hợp lệ / Khởi động lại

Mỗi lần tôi thay đổi tập tin lớp, tôi phải khởi động lại Android Studio hoặc vấn đề trở lại.

Bạn cũng có thể thử điều này:

  1. Sắp xếp lại các kho lưu trữ để:

    mavenCentral()
    maven { url 'https://jitpack.io' }
    google()
    jcenter()
  2. Xóa thư mục này: user ~ / .gradle / cache và xóa thư mục xây dựng ứng dụng theo cách thủ công, sau đó dọn dẹp và xây dựng lại .


Nhưng tôi vẫn không thể chạy ứng dụng của mình vì nó sẽ xây dựng dự án trước khi khởi chạy nó.
Vòng lặp vô hạn

7

Điều gì đã khắc phục vấn đề cho tôi:

  • Thay đổi phiên bản plugin gradle thành 3.1.0
  • Thay đổi phiên bản Kotlin thành 1.2.30
  • Sau đó, studio Android đã thay đổi trình bao bọc lớp thành phiên bản 4.4
  • Sau đó, studio Android đã nói rằng phiên bản công cụ xây dựng được sử dụng là 27.0.3và tôi nên thay đổi nó thành 27.0.3vì vậy tôi cũng đã thay đổi SDK mục tiêu thành27
  • Tôi đã thêm nó vào gradle.build của tôi:

    kapt {
         generateStubs = true
     }

Tôi hy vọng nó sẽ giúp


5

tại studio android v3.1.2, xảy ra lỗi:

Folder D:\AndroidProjects\app\build\generated\source\kaptKotlin\debug
Folder D:\AndroidProjects\app\build\generated\source\kaptKotlin\release
3rd-party Gradle plug-ins may be the cause

bởi vì dataBinding sử dụng apply plugin: 'kotlin-kapt'nên thêm

kapt {
    generateStubs = true
}
  1. Thay đổi phiên bản plugin gradle thành 3.1.2
  2. Thay đổi phiên bản Kotlin thành 1.2.30
  3. Sau đó, studio Android đã thay đổi trình bao bọc lớp thành phiên bản 4.4
  4. Sau đó, studio Android đã nói rằng phiên bản công cụ xây dựng được sử dụng là 27.1.1 và tôi nên đổi nó thành 27.1.1 vì vậy tôi cũng đã thay đổi SDK mục tiêu thành 27

5

Đây là một số bước mà tôi đã làm theo. Trong trường hợp của tôi, nó đã khắc phục vấn đề!

Các mô-đun nền tảng nhắm mục tiêu Android Bản cập nhật của tính năng dự án đa nền tảng thử nghiệm giới thiệu hỗ trợ cho các mô-đun nền tảng Android. Các mô-đun này nên áp dụng plugin tương ứng trong tập lệnh xây dựng Gradle và có thể sử dụng mã được chia sẻ từ một mô-đun chung:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-platform-android'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
// ...
// ...

Các vị trí chẩn đoán Kapt Hiện tại, kapt, công cụ xử lý chú thích Kotlin, có thể cung cấp các liên kết đến các vị trí trong mã Kotlin ban đầu thay vì các cuống Java được tạo khi nó báo cáo các lỗi gặp phải trong quá trình xử lý chú thích. Bạn có thể kích hoạt tính năng này bằng cách thêm các dòng này vào tập lệnh xây dựng Gradle (build.gradle):

kapt {
    mapDiagnosticLocations = true
}

Thêm điều này:

allprojects {
        repositories {
            jcenter()
            google()
        }
    }

Đừng quên phần tiếp theo:

// Architecture Component - Room

     implementation "android.arch.persistence.room:runtime:1.1.0-beta1"
        kapt "android.arch.persistence.room:compiler:1.1.0-beta1"

      // Lifecyles, LiveData and ViewModel
    kapt 'com.android.databinding:compiler:3.1.0'


 // ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:1.1.1"

// alternatively, just ViewModel
    implementation "android.arch.lifecycle:viewmodel:1.1.1"

 // alternatively, just LiveData
     implementation "android.arch.lifecycle:livedata:1.1.1"
       kapt "android.arch.lifecycle:compiler:1.1.1"

 // Room (use 1.1.0-beta1 for latest beta)
    implementation "android.arch.persistence.room:runtime:1.0.0"
      kapt "android.arch.persistence.room:compiler:1.0.0"


// Paging
    implementation "android.arch.paging:runtime:1.0.0-alpha7"

        // Test helpers for LiveData
    testImplementation "android.arch.core:core-testing:1.1.1"

        // Test helpers for Room
 testImplementation "android.arch.persistence.room:testing:1.0.0"
  1. Làm sạch dự án của bạn

  2. Xây dựng và đó là nó!

Thêm tất cả điều này, Làm sạch dự án của bạn, xây dựng và đó là nó! :) Hãy cho tôi biết nếu các công trình này! (Nếu nó không hiệu quả với bạn, tôi sẽ giúp bạn một giải pháp khác)

Thông tin thêm: Trang web Android :) Hãy cho tôi biết nếu nó hoạt động! (Nếu nó không hoạt động, tôi sẽ cố gắng giúp bạn tìm ra cách tốt hơn)

Nếu bạn đưa ra một DownVote giải thích tại sao


1
Thêm dòng mapDiagnosticLocations = truevào kaptcấu hình hoạt động - đôi khi ít nhất là: /
kuhnroyal

@kuhnroyal Tôi chấp nhận phản hồi của bạn! Chúc một ngày tốt lành, tôi tiếp tục tìm kiếm một giải pháp tốt hơn
Cristofer

5

Điều thực sự giúp ích cho tôi là thêm điều này

kapt {
     generateStubs = true
}

vào build.gradle


3

Trong trường hợp của tôi, không có giải pháp nào ở trên giải quyết được vấn đề của tôi, tôi đã sử dụng phiên bản 1.250 Kotlin mà không đề cập đến Instant Run và bản dựng không tạo ra các lớp Dagger, vì vậy tôi phát hiện ra câu hỏi này đã giải quyết vấn đề của tôi, rõ ràng , trong tình huống của tôi, đó là một vấn đề liên quan đến phiên bản Kotlin mới, vì vậy tôi đã hạ cấp xuống phiên bản 1.2.41 và hoạt động tốt. Nhân tiện, tôi chỉ theo dõi đến thời điểm đó vì tôi đã sử dụng màn hình Toggle View trên Build.

1: Chọn Chế độ xem Chuyển đổi và xây dựng dự án của bạn

Chuyển đổi chế độ xem

2: Bạn sẽ có thể thấy chính xác những gì đã xảy ra

lỗi

Câu hỏi về stackoverflow : Kotlin 1.2.50 yêu cầu baseFeatureInfoDir

Trình theo dõi sự cố: https://issuetracker.google.com/issues/110198434


2

Hãy thử loại bỏ Instant run từ cài đặt và gradle sẽ tốt.

Nó làm việc cho tôi.


2

Dưới đây là một số bước mà tôi đã làm theo và nó đã khắc phục vấn đề trong trường hợp của tôi.

  1. Trước hết, cài đặt phiên bản plugin kotlin thành '1.2.31' và cập nhật nó trong tệp build.gradle như bên dưới.

phụ thuộc {classpath 'com.android.tools.build:gradle:3.1.0' classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: $ 1.2.31"}

  1. Dự án sạch.

  2. Cuối cùng Xây dựng lại dự án.


1
  1. tẩy apply plugin: 'kotlin-kapt'
  2. thêm mavenCentral()vào build.gradle như:

    allprojects { repositories { mavenCentral() google() jcenter() } }

  3. Dự án đồng bộ và làm sạch

0

Dưới đây là một số cách tiếp cận để tôi khắc phục vấn đề này cho trường hợp của mình:

Trước hết hãy cập nhật phiên bản plugin cấp độ Android của bạn từ tệp lớp xây dựng dự án và sau đó cập nhật phiên bản lớp của bạn từ thuộc tính lớp.

Cuối cùng cập nhật phiên bản kotlin của bạn (Bắt buộc) thành kotlin_version = '1.2.30' hoặc mới hơn từ tệp phân lớp xây dựng dự án.

Bây giờ hãy cố gắng để làm sạch dự án của bạn và xây dựng. Vấn đề cần được giải quyết. Mỗi lần sau khi xây dựng nếu bạn xây dựng lại thì có lẽ vấn đề sẽ xảy ra một lần nữa, vì vậy hãy làm sạch dự án của bạn một lần nữa và sau đó xây dựng.


0

Điều này xảy ra vì bộ xử lý chú thích Kapt sử dụng thư mục này để lưu trữ các tệp được tạo bởi Kotlin. Android hiện không nhận ra đường dẫn theo mặc định.

Xem thêm chi tiết


0

Thêm một câu trả lời khác cho những người không thể xóaInstant App Provision , bởi vì nó tiếp tục xuất hiện trở lại.

Xây dựng dự án bằng tay: ./gradlew assembleDebug

Nó là một hotfix, nhưng nó sẽ hoạt động (vì vấn đề có thể liên quan đến Android Studio).


0

Tôi gặp vấn đề này khi sử dụng Realm với kotlin trong studio android.
Để giải quyết theo các bước sau:

  1. Sau khi thêm Realm vào dự án build.gradle, hãy đảm bảo tệp build.gradle của ứng dụng của bạn giống như sau:

    apply plugin: 'com.android.application'  
    apply plugin: 'kotlin-android'  
    apply plugin: 'kotlin-android-extensions'  
    apply plugin: 'kotlin-kapt'  
    apply plugin: 'realm-android'  
    .  
    .  
    .  
    androidExtensions {  
    experimental = true
    }
  2. Sử dụng kaptthay vì annotationProcessortrong phụ thuộc build.gradle ứng dụng của bạn.

  3. Đi đến Run -> Edit Configurations..và loại bỏ Instant App Provisiontùy chọn.

  4. Chạy lệnh này trong thiết bị đầu cuối của studio Android:

    gradlew assembleDebug  
  5. Được rồi !

Lưu ý: Nếu bạn thấy thông báo "Trình cắm lớp bên thứ ba có thể là nguyên nhân", hãy thực hiện lại bước 3 & 4.


0

Cấu hình theo yêu cầu với Gradle 4.6 trở lên: Nếu bạn đang sử dụng Android Gradle Plugin 3.0.x hoặc 3.1.x với Gradle 4.6 trở lên, bạn nên tắt cấu hình theo yêu cầu để tránh một số lỗi xây dựng không thể đoán trước. (Nếu bạn đang sử dụng Plugin Android Gradle 3.2.0 trở lên, bạn không cần thực hiện bất kỳ hành động nào để tắt cấu hình theo yêu cầu.)

Vô hiệu hóa cấu hình theo yêu cầu trong tệp gradle.properIES của bạn như hiển thị bên dưới:

org.gradle.configureondemand = false Để tắt cấu hình theo yêu cầu trong cài đặt Android Studio, chọn Tệp> Cài đặt (Android Studio

Tùy chọn trên Mac), chọn danh mục Trình biên dịch trong khung bên trái và xóa hộp kiểm Cấu hình theo yêu cầu.

Trong Android Studio 3.2 Beta 1 trở lên, các tùy chọn cho phép cấu hình theo yêu cầu đã bị xóa. Xin vui lòng đọc phần vấn đề được biết từ liên kết dưới đây. nhập mô tả liên kết ở đây


0

Thật ra, tôi cũng đang đối mặt với lỗi tương tự. Những gì tôi đã làm là cập nhật phiên bản kotlin của tôi lên bản mới nhất . Điều này có thể giải quyết vấn đề của bạn.


-4

Chà, tôi thấy đó là vì apply plugin: 'kotlin-kapt'nếu bạn xóa dòng này trong build.gradle (ứng dụng), thì bạn sẽ xây dựng thành công ...

Không biết tại sao plugin này dẫn đến những cảnh báo này.

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.