ปลั๊กอิน Android Gradle 3.1.0 (มีนาคม 2018)

ปลั๊กอิน Android เวอร์ชันนี้ต้องการสิ่งต่อไปนี้

เวอร์ชันต่ำสุด เวอร์ชันเริ่มต้น หมายเหตุ
เกรเดิล 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 อยู่แล้ว โปรดทราบว่า ซึ่งตอนนี้มีการคอมไพล์กับไลบรารีที่รวมอยู่ใน เครื่องมือสร้าง 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")
                      ...
                  }
              }
            
  • การสร้างปลั๊กอิน Android แคชจะนำออกรายการแคชที่เก่ากว่า 30 วันออก

  • ผ่าน "auto" ไปยัง resConfig ไม่เลือกทรัพยากรสตริงเพื่อจัดแพ็กเกจใน APK ของคุณโดยอัตโนมัติอีกต่อไป หากคุณยังคงใช้ "auto" ต่อไป ปลั๊กอินจะจัดแพ็กเกจสตริงทั้งหมด ทรัพยากรที่แอปของคุณและทรัพยากร Dependency มีให้ ดังนั้น คุณควรแทนที่ ระบุแต่ละภาษาที่คุณต้องการให้ปลั๊กอินรวมเข้าไว้ใน APK ของคุณ

  • เนื่องจากโมดูลในเครื่องต้องไม่พึ่ง APK การทดสอบของแอปคุณ การเพิ่ม ทรัพยากร Dependency ไปยังการทดสอบแบบมีเครื่องวัดโดยใช้เครื่องมือ 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 ไม่รู้จัก ทรัพยากร Dependency ในบิลด์แบบผสม
  • แก้ไขปัญหาที่คุณได้รับข้อผิดพลาดในการซิงค์โปรเจ็กต์เมื่อโหลด ปลั๊กอิน Android หลายครั้งในบิลด์เดียว เช่น โปรเจ็กต์ย่อยแต่ละรายการมีปลั๊กอิน Android ในบิลด์สคริปต์ คลาสพาธ