ปลั๊กอิน Gradle ของ บริษัท อื่นอาจเป็นสาเหตุ


132

หลังจากอัปเดตเป็น Android Studio 3.1 ฉันได้รับข้อความแสดงข้อผิดพลาดนี้:

โครงการทำงานได้ดีและส่วนใหญ่เป็นเพียงคำเตือนดังนั้นคำถามของฉันคือความหมายของคำเตือนคืออะไรและฉันจะกำจัดมันได้อย่างไร

ส่วนที่เกี่ยวข้องจากไฟล์ gradle:

นี่คือโครงการของฉัน 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' }
    }
}

และนี่คือbuild.gradleไฟล์แอปของฉัน:

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
ตามIssetracker.google.com/issues/74537216ปัญหานี้ได้รับการแก้ไขใน AS3.2
Angel Koh

Build> Rebuild Projectทำงานจากฉัน
Zohab Ali

คำตอบ:


143

เพื่อแก้ปัญหาที่ลบ Instant App Provisionจาก "Run การตั้งค่า" Gradle-Aware Makeและปล่อยเพียง

Run -> Edit Configurations..

การกำหนดค่า Run / Debug ของฉันหลังจากสร้างสำเร็จ

ฉันมี AndroidStudio 3.1, Gradle ปลั๊กอิน3.1.0และ Kotlin 1.2.30รุ่นห้องสมุด


5
สิ่งนี้ใช้งานได้จริง แต่แนวคิดใด ๆ ที่เกิดขึ้นและคุณมาถึงโซลูชันนี้ได้อย่างไร
ตื่นเต้น

59
และด้วยเหตุผลบางอย่างหลังจากลบไปInstant App Provisionsแล้วจะกลับไปที่เดิมเสมอ
แปลกใจ

3
สิ่งนี้ปิดใช้งานการรันทันทีหรือไม่
Caleb_Allen

7
@Caleb_Allen ไม่ แต่ไม่มีใครใช้การเรียกใช้ทันทีอยู่แล้ว นี่มีไว้สำหรับ 'Instant App' ไม่ใช่การเรียกใช้ทันที
Tim

4
สำหรับใครก็ตามที่สิ่งนี้กลับมาเรื่อย ๆ (เช่น @humazed) ฉันพบวิธีแก้ไข: ก่อนอื่นไปที่Run > Edit Configurationsอีกครั้ง จากนั้นไปที่Edit Defaultsโดยคลิกปุ่มที่มีไอคอนเครื่องมือที่ด้านบน เลือกAndroid Appและปล่อยไว้Gradle-aware Makeเหมือนก่อนหน้านี้เท่านั้น กดใช้
b_yng

17

ฉันรีสตาร์ท Android Studio และปัญหาก็หายไป

คลิก File -> Invalidate Caches / Restart

ทุกครั้งที่เปลี่ยนไฟล์ gradle ฉันต้องรีสตาร์ท Android Studio ไม่เช่นนั้นปัญหาจะกลับมา

คุณยังสามารถลองสิ่งนี้:

  1. สั่งซื้อที่เก็บใหม่เป็น:

    mavenCentral()
    maven { url 'https://jitpack.io' }
    google()
    jcenter()
    
  2. ล้างโฟลเดอร์นี้: ผู้ใช้~ / .gradle / แคชและการลบแอปสร้างโฟลเดอร์ด้วยตนเองแล้วทำความสะอาดและสร้าง


แต่ฉันยังไม่สามารถเรียกใช้แอปของฉันได้เนื่องจากจะสร้างโครงการก่อนเปิดตัว
Infinite Loops

7

สิ่งที่แก้ไขปัญหาสำหรับฉัน:

  • เปลี่ยนเวอร์ชันปลั๊กอิน gradle เป็น 3.1.0
  • เปลี่ยนเวอร์ชัน Kotlin เป็น 1.2.30
  • จากนั้นสตูดิโอ Android ได้เปลี่ยนเสื้อคลุมแบบ gradle เป็นเวอร์ชัน 4.4
  • จากนั้นสตูดิโอ Android ก็บอกว่าเวอร์ชันเครื่องมือสร้างที่ใช้คือ 27.0.3และฉันควรเปลี่ยนเป็น27.0.3ดังนั้นฉันจึงเปลี่ยน SDK เป้าหมายเป็น27
  • ฉันเพิ่มสิ่งนี้ใน gradle.build ของฉัน:

    kapt {
         generateStubs = true
     }
    

ฉันหวังว่ามันจะช่วยได้


5

ที่ android studio v3.1.2 เกิดข้อผิดพลาด:

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

เนื่องจาก dataBinding ใช้apply plugin: 'kotlin-kapt'จึงเพิ่ม

kapt {
    generateStubs = true
}
  1. เปลี่ยนเวอร์ชันปลั๊กอิน gradle เป็น 3.1.2
  2. เปลี่ยนเวอร์ชัน Kotlin เป็น 1.2.30
  3. จากนั้นสตูดิโอ Android เปลี่ยน gradle wrapper เป็นเวอร์ชัน 4.4
  4. จากนั้น Android studio ก็บอกว่าเวอร์ชัน build tools ที่ใช้คือ 27.1.1 และฉันควรเปลี่ยนเป็น 27.1.1 ดังนั้นฉันจึงเปลี่ยน SDK เป้าหมายเป็น 27 ด้วย

5

ฉันทำตามขั้นตอนต่อไปนี้ ในกรณีของฉันมันได้รับการแก้ไขปัญหา!

โมดูลแพลตฟอร์มที่กำหนดเป้าหมายไปที่ Android การอัปเดตคุณลักษณะโครงการหลายแพลตฟอร์มแบบทดลองจะแนะนำการรองรับโมดูลแพลตฟอร์ม Android โมดูลเหล่านี้ควรใช้ปลั๊กอินที่เกี่ยวข้องในสคริปต์การสร้าง Gradle และสามารถใช้โค้ดที่แชร์จากโมดูลทั่วไป:

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

ตำแหน่งการวินิจฉัย Kapt ณ ตอนนี้ kapt ซึ่งเป็นเครื่องมือประมวลผลคำอธิบายประกอบของ Kotlin สามารถนำเสนอลิงก์ไปยังตำแหน่งในโค้ด Kotlin ดั้งเดิมแทนที่จะสร้างต้นขั้ว Java เนื่องจากรายงานข้อผิดพลาดที่พบในระหว่างการประมวลผลคำอธิบายประกอบ คุณสามารถเปิดใช้งานคุณลักษณะนี้ได้โดยการเพิ่มบรรทัดเหล่านี้ใน Gradle build script (build.gradle):

kapt {
    mapDiagnosticLocations = true
}

เพิ่มสิ่งนี้:

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

อย่าลืมสิ่งต่อไป:

// 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. ทำความสะอาดโครงการของคุณ

  2. สร้างและนั่นแหล่ะ!

เพิ่มทั้งหมดนี้ทำความสะอาดโครงการของคุณสร้างและนั่นแหล่ะ! :) แจ้งให้เราทราบหากได้ผล! (หากไม่ได้ผลฉันจะช่วยคุณแก้ไขปัญหาอื่น)

ข้อมูลเพิ่มเติม: ไซต์ Android :) แจ้งให้เราทราบหากใช้งานได้! (หากไม่ได้ผลฉันจะพยายามช่วยคุณหาวิธีที่ดีกว่า)

ถ้าคุณให้ downVote อธิบายว่าทำไม


1
การเพิ่มบรรทัดmapDiagnosticLocations = trueในkaptการกำหนดค่าได้ผล - บางครั้งอย่างน้อย: /
kuhnroyal

@kuhnroyal ฉันขอแสดงความคิดเห็นของคุณ! ขอให้มีความสุขในวันนี้ฉันยังคงค้นหาทางออกที่ดีกว่า
Cristofer

5

สิ่งที่ช่วยฉันได้จริงคือการเพิ่มสิ่งนี้

kapt {
     generateStubs = true
}

ลงใน build.gradle


3

ในกรณีของฉันวิธีแก้ปัญหาข้างต้นไม่สามารถแก้ปัญหาของฉันได้ฉันใช้เวอร์ชัน 1.2.50 Kotlin โดยไม่ได้กล่าวถึง Instant Run และบิวด์ไม่ได้สร้างคลาส Dagger ดังนั้นฉันจึงพบว่าคำถามนี้ช่วยแก้ปัญหาของฉันได้ ในสถานการณ์ของฉันมันเป็นปัญหาที่เกี่ยวข้องกับ Kotlin เวอร์ชันใหม่ดังนั้นฉันจึงลดระดับเป็นเวอร์ชัน 1.2.41 และทำงานได้ดี อย่างไรก็ตามฉันเพิ่งติดตามไปถึงจุดนั้นเพราะฉันใช้หน้าจอ Toggle View บน Build

1: เลือก Toggle View และสร้างโครงการของคุณ

สลับมุมมอง

2: คุณจะสามารถเห็นสิ่งที่เกิดขึ้น

ข้อผิดพลาด

คำถาม Stackoverflow: Kotlin 1.2.50 ขอ baseFeatureInfoDir

เครื่องมือติดตามปัญหา: https://issuetracker.google.com/issues/110198434



2

นี่คือขั้นตอนบางส่วนที่ฉันได้ทำตามและได้รับการแก้ไขปัญหาในกรณีของฉัน

  1. ก่อนอื่นให้ติดตั้งปลั๊กอิน kotlin เวอร์ชันเป็น '1.2.31' และอัปเดตในไฟล์ build.gradle ดังด้านล่าง

การพึ่งพา {classpath 'com.android.tools.build:gradle:3.1.0' classpath "org.jetbrains.kotlin: kotlin-gradle-plugin: $ 1.2.31"}

  1. โครงการสะอาด.

  2. ในที่สุดก็สร้างโครงการใหม่



0

นี่คือแนวทางบางประการในการแก้ไขปัญหานี้สำหรับกรณีของฉัน:

ก่อนอื่นให้อัปเดตเวอร์ชันปลั๊กอิน Android gradle ของคุณจากไฟล์ gradle ของ project build จากนั้นอัปเดตเวอร์ชัน gradle ของคุณจากคุณสมบัติ gradle

สุดท้ายอัปเดตเวอร์ชัน kotlin ของคุณ (บังคับ) เป็น kotlin_version = '1.2.30' หรือใหม่กว่าจากไฟล์ gradle ของ project build

ตอนนี้พยายามทำความสะอาดโครงการของคุณและสร้าง ปัญหาควรได้รับการแก้ไข ทุกครั้งหลังจากสร้างหากคุณสร้างอีกครั้งปัญหาอาจเกิดขึ้นอีกครั้งดังนั้นเพียงทำความสะอาดโครงการของคุณอีกครั้งแล้วสร้าง


0

สิ่งนี้เกิดขึ้นเนื่องจากตัวประมวลผลคำอธิบายประกอบ Kapt ใช้ไดเร็กทอรีนี้เพื่อจัดเก็บไฟล์ที่สร้างโดย Kotlin ปัจจุบัน Android ไม่รู้จักเส้นทางโดยค่าเริ่มต้น

ดูรายละเอียดเพิ่มเติม


0

เพิ่มคำตอบอื่นสำหรับผู้ที่ไม่สามารถลบได้Instant App Provisionเนื่องจากยังคงปรากฏขึ้นอีกครั้ง

สร้างโครงการด้วยตนเอง: ./gradlew assembleDebug

เป็นโปรแกรมแก้ไขด่วน แต่จะใช้งานได้ (เนื่องจากปัญหาน่าจะเกี่ยวข้องกับ Android Studio)


0

ฉันมีปัญหานี้เมื่อใช้Realmกับ kotlin ใน android studio
ในการแก้ไขให้ทำตามขั้นตอนเหล่านี้:

  1. หลังจากเพิ่ม Realm ในโปรเจ็กต์ build.gradle ตรวจสอบให้แน่ใจว่าไฟล์ build.gradle ของแอพของคุณเป็นแบบนี้:

    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. ใช้kaptแทนannotationProcessorในการอ้างอิง build.gradle ของแอปของคุณ

  3. ไปที่Run -> Edit Configurations..และลบInstant App Provisionตัวเลือก

  4. เรียกใช้คำสั่งนี้ในเทอร์มินัลของสตูดิโอ Android:

    gradlew assembleDebug  
    
  5. ไม่เป็นไร !

หมายเหตุ: หากคุณเห็นข้อความ "ปลั๊กอิน Gradle ของบุคคลที่สามอาจเป็นสาเหตุ" อีกครั้งให้ทำขั้นตอนที่ 3 และ 4 อีกครั้ง


0

การกำหนดค่าตามความต้องการด้วย Gradle 4.6 ขึ้นไป: หากคุณใช้ Android Gradle Plugin 3.0.x หรือ 3.1.x กับ Gradle 4.6 ขึ้นไปคุณควรปิดการใช้งานการกำหนดค่าตามความต้องการเพื่อหลีกเลี่ยงข้อผิดพลาดในการสร้างที่คาดเดาไม่ได้ (หากคุณใช้ Android Gradle Plugin 3.2.0 ขึ้นไปคุณไม่จำเป็นต้องดำเนินการใด ๆ เพื่อปิดใช้งานการกำหนดค่าตามความต้องการ)

ปิดใช้งานการกำหนดค่าตามต้องการในไฟล์ gradle.properties ของคุณดังที่แสดงด้านล่าง:

org.gradle.configureondemand = false หากต้องการปิดใช้งานการกำหนดค่าตามความต้องการในการตั้งค่า Android Studio ให้เลือกไฟล์> การตั้งค่า (Android Studio

การตั้งค่าบน Mac) เลือกประเภทคอมไพเลอร์ในบานหน้าต่างด้านซ้ายและล้างกล่องกาเครื่องหมายกำหนดค่าตามความต้องการ

ใน Android Studio 3.2 Beta 1 ขึ้นไปตัวเลือกสำหรับการเปิดใช้งานการกำหนดค่าตามความต้องการจะถูกลบออก โปรดอ่านหัวข้อปัญหาที่ทราบจากลิงค์ด้านล่าง ป้อนคำอธิบายลิงก์ที่นี่


0

อันที่จริงฉันก็ประสบกับข้อผิดพลาดเดียวกัน สิ่งที่ฉันได้มีการปรับปรุงรุ่น Kotlin ของฉันไปที่ล่าสุด วิธีนี้อาจแก้ปัญหาของคุณได้


-4

ฉันพบว่ามันเป็นเพราะapply plugin: 'kotlin-kapt', ถ้าคุณลบบรรทัดนี้ใน build.gradle (app) คุณจะสร้างสำเร็จ ...

ไม่รู้ว่าเหตุใดปลั๊กอินนี้จึงส่งผลให้เกิดคำเตือนเหล่านี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.