ปลั๊กอิน Android Gradle 3.1.0 (มีนาคม 2018)
ปลั๊กอิน Android เวอร์ชันนี้กำหนดให้ต้องมีสิ่งต่อไปนี้
เวอร์ชันขั้นต่ำ | เวอร์ชันเริ่มต้น | หมายเหตุ | |
---|---|---|---|
Gradle | 4.4 | 4.4 | ดูข้อมูลเพิ่มเติมได้ที่การอัปเดต Gradle |
เครื่องมือสร้าง SDK | 27.0.3 | 27.0.3 | ติดตั้งหรือกำหนดค่าเครื่องมือสร้าง SDK โปรดทราบว่าคุณไม่จำเป็นต้องระบุเวอร์ชันสำหรับเครื่องมือบิลด์โดยใช้พร็อพเพอร์ตี้ android.buildToolsVersion อีกต่อไป เนื่องจากปลั๊กอินจะใช้เวอร์ชันขั้นต่ำที่จำเป็นโดยค่าเริ่มต้น |
คอมไพเลอร์ DEX ใหม่ D8
ตอนนี้ Android Studio ใช้คอมไพเลอร์ DEX ใหม่ที่ชื่อ D8 โดยค่าเริ่มต้น การคอมไพล์ DEX
คือกระบวนการแปลงไบต์โค้ด .class
เป็นไบต์โค้ด
.dex
สำหรับ Android Runtime (หรือ Dalvik สำหรับ Android เวอร์ชันเก่า
) เมื่อเทียบกับคอมไพเลอร์ก่อนหน้าซึ่งเรียกว่า DX แล้ว D8
จะคอมไพล์ได้เร็วกว่าและเอาต์พุตเป็นไฟล์ DEX ที่มีขนาดเล็กกว่า ในขณะที่ยังคงมีประสิทธิภาพรันไทม์ของแอปเท่าเดิมหรือดีกว่า
D8 ไม่ควรเปลี่ยนเวิร์กโฟลว์การพัฒนาแอปในแต่ละวัน อย่างไรก็ตาม หากคุณพบปัญหาที่เกี่ยวข้องกับคอมไพเลอร์ใหม่ โปรดรายงานข้อบกพร่อง คุณปิดใช้ D8 ชั่วคราวและใช้ DX ได้โดยรวมข้อความต่อไปนี้ไว้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableD8=false
สำหรับโปรเจ็กต์ที่
ใช้ฟีเจอร์ภาษาของ Java 8
ระบบจะเปิดใช้การแยกน้ำตาลแบบเพิ่มทีละรายการโดยค่าเริ่มต้น คุณปิดใช้ได้โดย
ระบุสิ่งต่อไปนี้ในไฟล์ gradle.properties
ของโปรเจ็กต์
android.enableIncrementalDesugaring=false.
ผู้ใช้เวอร์ชันตัวอย่าง: หากคุณใช้ D8 เวอร์ชันตัวอย่างอยู่แล้ว โปรดทราบว่า ตอนนี้ D8 จะคอมไพล์กับไลบรารีที่รวมอยู่ใน เครื่องมือสร้าง SDK ไม่ใช่ JDK ดังนั้น หากคุณเข้าถึง API ที่มีอยู่ใน JDK แต่ไม่มีอยู่ในไลบรารีเครื่องมือสร้าง SDK คุณจะได้รับข้อผิดพลาดในการคอมไพล์
การเปลี่ยนแปลงลักษณะการทำงาน
-
เมื่อสร้าง APK หลายรายการที่แต่ละรายการกำหนดเป้าหมายเป็น ABI ที่แตกต่างกัน จะไม่สร้าง APK สำหรับ ABI ต่อไปนี้โดยค่าเริ่มต้นอีกต่อไป
mips
,mips64
และarmeabi
หากต้องการสร้าง APK ที่กำหนดเป้าหมายเป็น ABI เหล่านี้ คุณต้องใช้ NDK r16b หรือต่ำกว่า และ ระบุ ABI ในไฟล์
build.gradle
ดังที่แสดงด้านล่างsplits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
ตอนนี้ build cache ของปลั๊กอิน Android จะนำรายการแคชที่มีอายุมากกว่า 30 วันออก
-
การส่ง
"auto"
ไปยังresConfig
จะไม่เลือกทรัพยากรสตริงเพื่อแพ็กเกจลงใน APK โดยอัตโนมัติอีกต่อไป หากคุณใช้"auto"
ต่อไป ปลั๊กอินจะแพ็กเกจสตริงทั้งหมด ทรัพยากรที่แอปและทรัพยากร Dependency ของแอปมีให้ ดังนั้น คุณควร ระบุภาษาแต่ละภาษาที่ต้องการให้ปลั๊กอินแพ็กเกจลงใน APK แทน -
เนื่องจากโมดูลภายในเครื่องไม่สามารถขึ้นอยู่กับ APK ทดสอบของแอป การเพิ่ม การอ้างอิงในการทดสอบที่มีการวัดโดยใช้การกำหนดค่า
androidTestApi
แทนที่จะใช้androidTestImplementation
จะทำให้ Gradle แสดงคำเตือนต่อไปนี้WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
การแก้ไข
- แก้ไขปัญหาที่ Android Studio ไม่รู้จัก การขึ้นต่อกันในการสร้างแบบคอมโพสิตอย่างถูกต้อง
- แก้ไขปัญหาที่คุณได้รับข้อผิดพลาดในการซิงค์โปรเจ็กต์เมื่อโหลด ปลั๊กอิน Android หลายครั้งในการสร้างครั้งเดียว เช่น เมื่อ โปรเจ็กต์ย่อยหลายรายการแต่ละรายการมีปลั๊กอิน Android ใน classpath ของ buildscript