หลังจากอัปเกรดจาก 2.2 เป็น 2.3 ฉันเห็นคำเตือนนี้
และเมื่อฉันพยายามรวบรวมโครงการฉันเห็นข้อผิดพลาดในการคอมไพล์นี้
ฉันจะแก้ปัญหานี้ได้อย่างไรโดยไม่ต้องดาวน์เกรดเป็น Gradle เวอร์ชันก่อนหน้า มีการอัปเดต android-apt ที่สามารถแก้ปัญหานี้ได้หรือไม่?
คำตอบ:
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
ทำงานซึ่งเป็นสาเหตุของการตรวจสอบดังกล่าว
android-apt
ทำงานซึ่งเป็นเหตุผลในการตรวจสอบดังกล่าว
สำหรับฉันฉันพบข้อผิดพลาดนี้ขณะใช้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สำหรับเวอร์ชันล่าสุดได้ตลอดเวลา
ลบ apt plugin
เปลี่ยนแปลง:
apt -> คอมไพล์
testApt -> testAnnotationProcessor
androidTestApt -> androidTestAnnotationProcessor
ใน build.gradle (app) ของคุณให้เพิ่มเป็น defaultConfig:
vectorDrawables.useSupportLibrary = true
Piggybacking ที่ @Gabriele Mariotti ที่นี่เนื่องจากคำตอบของเขาค่อนข้างตรงประเด็นและบอกเป็นนัย ๆ แต่ไม่ได้ระบุไว้ Gradle ยังไม่แนะนำให้เป็นตัวเลือกที่ถูกต้องแม้ว่าจะเป็นเช่นกัน เทียบเท่าการทดสอบandroidTestApt
และtestApt
เป็นและandroidTestAnnotationProcessor
testAnnotationProcessor
ตัวอย่าง:
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"
ในกรณีที่ตัวประมวลผลคำอธิบายประกอบมีอาร์กิวเมนต์อาจต้องเปลี่ยนสิ่งนี้ด้วย:
apt {
arguments {
KEY "VALUE"
}
}
สำหรับสิ่งนี้:
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = ['KEY': 'VALUE']
}
}
}
}