บันทึกประจำรุ่นสำหรับเครื่องมือสร้าง SDK

เครื่องมือสร้าง Android SDK เป็นคอมโพเนนต์ของ Android SDK ที่ต้องใช้สำหรับ ในการสร้างแอป Android โดยได้รับการติดตั้งไว้ใน ไดเรกทอรี <sdk>/build-tools/

คุณควรอัปเดตคอมโพเนนต์เครื่องมือสร้างอยู่เสมอด้วยการดาวน์โหลดเวอร์ชันล่าสุด โดยใช้ Android SDK Manager หากคุณใช้ปลั๊กอิน Android สำหรับ Gradle 3.0.0 ขึ้นไป โปรเจ็กต์จะใช้เครื่องมือสร้างเวอร์ชันเริ่มต้นที่ปลั๊กอินระบุโดยอัตโนมัติ ถึง ใช้เครื่องมือบิลด์เวอร์ชันอื่น ให้ระบุโดยใช้ buildToolsVersion ใน build.gradle ของโมดูล ดังนี้

GroovyKotlin
android {
    buildToolsVersion "34.0.0"
    ...
}
android {
    buildToolsVersion = "34.0.0"
    ...
}

การแก้ไข

ส่วนด้านล่างนี้มีหมายเหตุเกี่ยวกับรุ่นต่างๆ ของเครื่องมือสร้าง หากต้องการทราบว่า เวอร์ชันแก้ไขของเครื่องมือสร้างที่พร้อมใช้งานใน SDK ของคุณ โปรดดูที่แพ็กเกจที่ติดตั้ง ใน Android SDK Manager

เครื่องมือสร้าง เวอร์ชัน 34.0.0 RC3(เมษายน 2023)

แก้ไขข้อบกพร่องและปรับปรุงด้านทั่วไป

การอัปเดตนี้รองรับการสร้างด้วย API การแสดงตัวอย่างของ Android 14

การอัปเดตนี้จะแก้ไขปัญหาต่อไปนี้

  • core-lambda-stubs.jar เวอร์ชัน 33.0.0 ใน macOS ต่างจาก Linux/Windows (ดูปัญหา #237299698)

การอัปเดตนี้จะแก้ไขปัญหาต่อไปนี้

  • AIDL ทำงานกับเครื่องมือบิลด์ 33.0.0 ไม่สำเร็จ (ดูปัญหา #236167971)

การอัปเดตนี้รองรับการสร้างด้วย API พรีวิวของ Android 11

การอัปเดตนี้จะแก้ไขปัญหาต่อไปนี้

การอัปเดตนี้จะแก้ไขปัญหาต่อไปนี้

การอัปเดตนี้รองรับการสร้างด้วย API ระดับ 29

การปรับปรุงนี้รวมถึงการสนับสนุน ปลั๊กอิน Android Gradle 3.2.0 และแก้ไขปัญหาต่อไปนี้

  • แก้ไขข้อบกพร่องของไลบรารี JNI ที่ทำให้แอปขัดข้องเมื่อโทร androidx.renderscript.RenderScript.create()
  • แก้ไขข้อบกพร่องที่ทำให้เกิดข้อผิดพลาดในการสร้าง Program type already present รายการ ทรัพยากร androidx.annotation รายการ

มี D8 เวอร์ชันล่าสุด

ปรับปรุงการรองรับการคอมไพล์ lambda เมื่อเปิดใช้ ฟีเจอร์ภาษาของ Java 8

ปรับปรุงการสนับสนุนสำหรับ ฟีเจอร์ภาษาของ Java 8

เพิ่มการรองรับ Multidex เดิมสำหรับ APK การทดสอบ (ปัญหา #37324038)

นอกเหนือจากการแก้ไขข้อบกพร่องทั่วไปแล้ว รุ่นนี้ยังมีการอัปเดตต่อไปนี้ด้วย

  • อัปเดต apksigner เป็นเวอร์ชัน 0.8:
    • ความเข้ากันได้กับ Java 9 (ปัญหา #37137869)
    • พารามิเตอร์ --pass-encoding ใหม่สำหรับจัดการคีย์สโตร์และคีย์ที่เข้ารหัสโดยใช้รหัสผ่านที่ไม่ใช่ ASCII หากเปลี่ยนไปใช้ Java 9 แล้ว apksigner ดำเนินการไม่สำเร็จ ถอดรหัสคีย์สโตร์หรือคีย์ของคุณ ใช้พารามิเตอร์นี้เพื่อระบุการเข้ารหัสอักขระที่คุณ ที่ใช้สร้างคีย์สโตร์หรือคีย์ ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของ apksigner หรือเรียกใช้ apksigner sign --help จากบรรทัดคำสั่ง
    • ข้อความแสดงข้อผิดพลาดที่ดีขึ้นเมื่อ apksigner ไม่สามารถยืนยันลายเซ็น JAR เนื่องจาก ไดเจสต์หรืออัลกอริทึมลายเซ็นที่ไม่รองรับ (ปัญหา #63525618)
  • การรองรับโหมด Daemon ของ AAPT2 เมื่อใช้ ปลั๊กอิน Android สำหรับ Gradle 3.0.0-beta7 ขึ้นไป

นอกเหนือจากการแก้ไขข้อบกพร่องทั่วไป รุ่นนี้จะคืนค่า apksigner แล้ว ลงในแพ็กเกจเครื่องมือสร้าง (ละเว้นด้วยความผิดพลาดในเวอร์ชัน 26.0.0) และมี การอัปเดตเครื่องมือดังต่อไปนี้

  • เพิ่มการรองรับ PKCS #11 เพื่ออนุญาตให้ลงนามด้วยคีย์ที่อยู่ในฮาร์ดแวร์ที่ปลอดภัย (ปัญหา #37140484)
  • เพิ่มการรองรับการโหลดรายการอื่นๆ ผู้ให้บริการ JCA ก่อนลงนาม
  • ให้รางวัล android:targetSandboxVersion เมื่อ การยืนยัน APK
  • เมื่อลงนาม ให้ปฏิเสธ APK ที่มีไฟล์ที่มีคำว่า "CR" (อักขระขึ้นบรรทัดใหม่), "LF" (ฟีดบรรทัด) หรือ 'NUL' (null) สัญลักษณ์พิเศษในชื่อไฟล์
  • แก้ไข apksigner.bat เพื่อจัดการพารามิเตอร์ที่มีการเว้นวรรคอย่างถูกต้อง (ปัญหา #38132450)
  • แก้ไขข้อบกพร่องในการยืนยันลายเซ็น JAR เมื่อมีการรวมข้อมูลเมตาหลายรายการสำหรับรายการเดียวกันใน MANIFEST.MF (ปัญหา #38497270)

เพิ่มการรองรับการสร้างด้วย API ระดับ 26 และมีการแก้ไขข้อบกพร่องทั่วไป

การอัปเดตสำหรับ apksigner

  • เพิ่มพารามิเตอร์ --in เพื่อให้สมมาตรกับพารามิเตอร์ --out ที่มีอยู่
  • หากคุณไม่ระบุรหัสผ่านของคีย์โดยใช้ --key-pass apksigner ใช้รหัสผ่านคีย์สโตร์เป็นรหัสผ่านคีย์ แต่หากคีย์จำเป็นต้องใช้ รหัสผ่านอื่น คุณจะได้รับข้อความแจ้งให้ป้อนรหัสผ่านคีย์จากบรรทัดคำสั่ง (ปัญหา #37134986)
  • เพิ่มความเข้ากันได้กับ jarsigner สำหรับรหัสผ่านที่ไม่ใช่ ASCII (ปัญหา #37135737)

แก้ไขข้อบกพร่อง

รุ่นนี้มีการแก้ไขข้อบกพร่องและสิ่งต่อไปนี้ การปรับปรุงสำหรับ apksigner:

  • รองรับ APK ที่มีชื่อรายการ JAR ที่มีการสร้างความสับสน
  • ตอนนี้สวิตช์ --print-certs จะทิ้งลายนิ้วมือ MD5 ด้วย

แก้ไขข้อบกพร่องสำหรับ Jack Toolchain

  • แก้ปัญหาที่ Jack รองรับไฟล์ต้นฉบับที่ไม่ใช่ ASCII (ปัญหา #218892)
  • แก้ไขปัญหาที่ทำให้เกิด AssertionError ระหว่างการคอมไพล์ (ฉบับ #208414)
  • เพิ่มเมื่อ apksigner เครื่องมือลงนาม APK ที่จะแทนที่ jarsigner apksigner รับรอง APK โดยค่าเริ่มต้น ใช้รูปแบบการลงนาม JAR แบบปกติ (ใช้โดย jarsigner) และ APK Signature Scheme v2 เปิดตัวใน Android 7.0 (API ระดับ 24) ช่วง การแก้ไข APK ที่รับรองด้วย APK Signature Scheme v2 จะทำให้ ลายเซ็น ดังนั้น การประมวลผลหลังการคอมไพล์ APK เช่น zipalign ต้องดำเนินการก่อนเรียกใช้ apksigner ไม่ใช่หลังจากเรียกใช้ กำลังเรียกใช้ zipalign ก่อน apksigner ทำงานได้ดีเนื่องจาก apksigner รักษาการวางแนวและการบีบอัด APK ไว้ (ต่างจาก jarsigner)
  • แก้ไขปัญหาในไลบรารีสนับสนุน RenderScript บนอุปกรณ์ arm64
  • แก้ไขปัญหาใน RenderScript รองรับไลบรารีในอุปกรณ์ Jelly Bean บางรุ่น
  • รองรับ renderscriptTargetAPI 21+ เมื่อใช้ Android ปลั๊กอินสำหรับ Gradle, Revision 2.1.0 ขึ้นไป
  • ปรับปรุงประสิทธิภาพการรวมของเครื่องมือ dx
  • แก้ไขปัญหาใน RenderScript สำหรับ Windows

แก้ไขปัญหาในเครื่องมือ RenderScript แล้ว

เพิ่มการรองรับรุ่น Android 6.0 (API ระดับ 23)

แก้ไขปัญหาความเข้ากันได้กับ เคอร์เนล RenderScript เปิดอยู่ อุปกรณ์ Android 4.4 (API ระดับ 19) ถึง Android 4.1 (API ระดับ 16)

เพิ่มการรองรับ Android 5.1 (API ระดับ 22)

แก้ปัญหาเลย์เอาต์ข้อมูลอาคารในโหมด 32 บิต

แก้ปัญหาสคริปต์ Multidex

เพิ่มการรองรับไฟล์ Multidex สำหรับ APK และการรองรับ Jack เพื่อจัดการกับการอ้างอิงเมธอด 64K ขีดจำกัด

อัปเดต Eclipse ADT ให้เสร็จสมบูรณ์เพื่อแก้ปัญหาความไม่เสถียรในแพลตฟอร์ม Windows

การอัปเดตเริ่มต้นสำหรับ Eclipse ADT ใน Windows โปรดใช้เวอร์ชัน 21.0.2

หมายเหตุทั่วไป
  • เพิ่มการรองรับ Android 5.0 (API ระดับ 21)
  • ตอนนี้ RenderScript รองรับการดำเนินการแบบ 32/64 บิตอย่างราบรื่นสำหรับ API ระดับ 21 ขึ้นไป
  • แก้ปัญหาระบบบิลด์ Gradle เมื่อใช้ปลั๊กอิน JaCoCo (ปัญหา 69174)
  • เพิ่มตัวเลือกรายการอินพุตสําหรับใช้กับบรรทัดคำสั่งแบบยาวใน Windows
หมายเหตุทั่วไป
  • เพิ่มการรองรับ Android Wear
หมายเหตุทั่วไป
  • เพิ่ม zipalign ในเครื่องมือสร้างแล้ว
  • แก้ไข aapt เพื่อละเว้นไฟล์ XML ที่คอมไพล์ไม่สำเร็จ

แก้ไขปัญหาเกี่ยวกับการรองรับ RenderScript

แก้ไขปัญหาการสร้าง RenderScript แล้ว:
  • แก้ไขปัญหาเกี่ยวกับการเข้ารหัสบิตโค้ดของ RenderScript (ปัญหา 64775)
  • แก้ปัญหาที่ RenderScript ไม่มีสัญลักษณ์ทางคณิตศาสตร์ (ปัญหา 64110)

แก้ไขปัญหาต่างๆ เกี่ยวกับการสร้าง
  • แก้ไขการรองรับการคอมไพล์ RenderScript ในโหมด NDK ด้วย Gradle
  • แก้ไขปัญหา BufferOverflowException รายการในบิลด์ DX (ปัญหา 61710)

เพิ่มการรองรับเป้าหมายบิลด์ของ Android 4.4 (API ระดับ 19)

แก้ไขปัญหาเล็กน้อยของการสร้าง

แก้ไขปัญหาเกี่ยวกับโหมดการสนับสนุน RenderScript

เพิ่มการรองรับเป้าหมายบิลด์ของ Android 4.3 (API ระดับ 18)

การเผยแพร่ครั้งแรก

หมายเหตุทั่วไป
  • รองรับเป้าหมายบิลด์สำหรับ Android 4.2 (API ระดับ 17)
  • แยกคอมโพเนนต์เฉพาะบิลด์ของ Android SDK ออกจากเครื่องมือของแพลตฟอร์ม เพื่อให้สามารถอัปเดตเครื่องมือสร้างได้อย่างอิสระจากการผสานรวม คอมโพเนนต์สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ (IDE)