ปลั๊กอินที่เข้ากันไม่ได้สำหรับ Android-apt หลังจากอัปเกรดเป็น Android Studio 2.3


101

หลังจากอัปเกรดจาก 2.2 เป็น 2.3 ฉันเห็นคำเตือนนี้

ป้อนคำอธิบายภาพที่นี่

และเมื่อฉันพยายามรวบรวมโครงการฉันเห็นข้อผิดพลาดในการคอมไพล์นี้

ป้อนคำอธิบายภาพที่นี่

ฉันจะแก้ปัญหานี้ได้อย่างไรโดยไม่ต้องดาวน์เกรดเป็น Gradle เวอร์ชันก่อนหน้า มีการอัปเดต android-apt ที่สามารถแก้ปัญหานี้ได้หรือไม่?

คำตอบ:


180

android-aptปลั๊กอินได้เลิก
ดูคู่มือการย้ายข้อมูลที่นี่:

สำหรับปลั๊กอิน Android Gradle เวอร์ชัน 2.2 ตอนนี้ฟังก์ชันทั้งหมดที่มีให้โดย android-apt ก่อนหน้านี้พร้อมใช้งานแล้วในปลั๊กอิน Android

คุณสามารถลบออกได้android-aptโดยทำตามคำแนะนำในการย้ายข้อมูลเพื่อรับฟังก์ชันที่เทียบเท่ากัน

ส่วนสำคัญจากคู่มือการย้ายข้อมูล :

  • ตรวจสอบว่าคุณใช้ปลั๊กอิน Android Gradle 2.2 หรือใหม่กว่า
  • ลบandroid-aptปลั๊กอินออกจากบิลด์สคริปต์ของคุณ
  • เปลี่ยนทั้งหมดapt, androidTestAptและtestAptการอ้างอิงให้เป็นรูปแบบใหม่ของพวกเขา:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

นอกจากนี้ในปลั๊กอิน Android Gradle ยังมีการตรวจสอบสิ่งนี้อย่างชัดเจนซึ่งเป็นสิ่งที่คุณเห็น:

ใช้ปลั๊กอินที่เข้ากันไม่ได้สำหรับการประมวลผลคำอธิบายประกอบ android-apt

เวอร์ชันปลั๊กอิน Android Gradle ในอนาคตจะไม่เข้ากันได้กับวิธีการandroid-aptทำงานซึ่งเป็นสาเหตุของการตรวจสอบดังกล่าว


ขอบคุณ! ฉันไม่รู้ว่า apt นั้นเลิกใช้แล้ว
Bronx

1
และในปลั๊กอิน Android Gradle Google มีการตรวจสอบอย่างชัดเจนซึ่งเป็นสิ่งที่คุณเห็น เวอร์ชัน Android Gradle ในอนาคตจะไม่เข้ากันได้กับวิธีการandroid-aptทำงานซึ่งเป็นเหตุผลในการตรวจสอบดังกล่าว
Botteaap

เช็คอยู่ไหน
ericn

ฉันไม่มีความถนัด แต่ยังคงได้รับคำเตือนนี้ แก้ไข: ปรากฎว่ามันเป็นอาณาจักร
behelit

ฉันไม่เห็น NDROID-pt ในรหัสของฉันเลย แต่ได้รับข้อผิดพลาด สิ่งที่อาจเป็นปัญหา?
Mubashar

48

สำหรับฉันฉันพบข้อผิดพลาดนี้ขณะใช้Vaultไลบรารีของ Contentful ซึ่งระบุว่าคุณรวม:

apply plugin: 'com.neenbedankt.android-apt'

และ

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

สิ่งที่คุณต้องทำคือDELETE apply plugin: 'com.neenbedankt.android-apt'

แล้วเปลี่ยน :

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

ถึง

annotationProcessor 'com.contentful.vault:compiler:2.1.0'
annotationProcessor 'com.contentful.vault:core:3.0.1'

คุณสามารถตรวจสอบhttps://github.com/contentful/vaultสำหรับเวอร์ชันล่าสุดได้ตลอดเวลา



6

Piggybacking ที่ @Gabriele Mariotti ที่นี่เนื่องจากคำตอบของเขาค่อนข้างตรงประเด็นและบอกเป็นนัย ๆ แต่ไม่ได้ระบุไว้ Gradle ยังไม่แนะนำให้เป็นตัวเลือกที่ถูกต้องแม้ว่าจะเป็นเช่นกัน เทียบเท่าการทดสอบandroidTestAptและtestAptเป็นและandroidTestAnnotationProcessortestAnnotationProcessor

ตัวอย่าง:

testApt "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestApt "com.google.dagger:dagger-compiler:$daggerVersion"

ควรเปลี่ยนเป็น

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"

1

ในกรณีที่ตัวประมวลผลคำอธิบายประกอบมีอาร์กิวเมนต์อาจต้องเปลี่ยนสิ่งนี้ด้วย:

apt {
    arguments {
        KEY "VALUE"
    }
}

สำหรับสิ่งนี้:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.