เครื่องมือสร้าง Android SDK เป็นคอมโพเนนต์ของ Android SDK ที่ต้องใช้สำหรับ
ในการสร้างแอป Android โดยได้รับการติดตั้งไว้ใน
ไดเรกทอรี <sdk>/build-tools/
คุณควรอัปเดตคอมโพเนนต์เครื่องมือสร้างอยู่เสมอด้วยการดาวน์โหลดเวอร์ชันล่าสุด
โดยใช้ Android SDK Manager หากคุณใช้ปลั๊กอิน Android สำหรับ Gradle 3.0.0 ขึ้นไป โปรเจ็กต์จะใช้เครื่องมือสร้างเวอร์ชันเริ่มต้นที่ปลั๊กอินระบุโดยอัตโนมัติ ถึง
ใช้เครื่องมือบิลด์เวอร์ชันอื่น ให้ระบุโดยใช้
buildToolsVersion
ใน build.gradle
ของโมดูล ดังนี้
android { buildToolsVersion "34.0.0" ... }
android { buildToolsVersion = "34.0.0" ... }
การแก้ไข
ส่วนด้านล่างนี้มีหมายเหตุเกี่ยวกับรุ่นต่างๆ ของเครื่องมือสร้าง หากต้องการทราบว่า เวอร์ชันแก้ไขของเครื่องมือสร้างที่พร้อมใช้งานใน SDK ของคุณ โปรดดูที่แพ็กเกจที่ติดตั้ง ใน Android SDK Manager
แก้ไขข้อบกพร่องและปรับปรุงด้านทั่วไป
การอัปเดตนี้รองรับการสร้างด้วย API การแสดงตัวอย่างของ Android 14
การอัปเดตนี้จะแก้ไขปัญหาต่อไปนี้
-
core-lambda-stubs.jar
เวอร์ชัน 33.0.0 ใน macOS ต่างจาก Linux/Windows (ดูปัญหา #237299698)
การอัปเดตนี้จะแก้ไขปัญหาต่อไปนี้
- AIDL ทำงานกับเครื่องมือบิลด์ 33.0.0 ไม่สำเร็จ (ดูปัญหา #236167971)
การอัปเดตนี้รองรับการสร้างด้วย API พรีวิวของ Android 11
การอัปเดตนี้จะแก้ไขปัญหาต่อไปนี้
- ปัญหาการสร้างกับ Renderscript ใน macOS Catalina (ดูปัญหา #142590626)
การอัปเดตนี้จะแก้ไขปัญหาต่อไปนี้
การอัปเดตนี้รองรับการสร้างด้วย 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)