ปลั๊กอิน Android Gradle 8.2.0 (พ.ย. 2023)
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ปลั๊กอิน Android Gradle 8.2.0 เป็นรุ่นหลักที่มีฟีเจอร์และการปรับปรุงใหม่ๆ มากมาย
ความเข้ากันได้
ระดับ API สูงสุดที่ปลั๊กอิน Android Gradle 8.2 รองรับคือ API ระดับ 34
ข้อมูลอื่นๆ เกี่ยวกับความเข้ากันได้มีดังนี้
มาโครใหม่สำหรับระบุเส้นทาง JDK
#GRADLE_LOCAL_JAVA_HOME
คือมาโครใหม่ที่คุณสามารถใช้เพื่อระบุเส้นทาง JDK ซึ่งจะช่วยให้ระบุเส้นทางบ้านของ Java ที่ใช้สำหรับการดำเนินการของเดรัม Gradle (กระบวนการเบื้องหลัง) สำหรับโปรเจ็กต์ของคุณได้อย่างปลอดภัยและง่ายขึ้น ระบบจะจัดเก็บการเลือกเส้นทางในช่อง java.home
ในไฟล์ .gradle/config.properties
ตั้งค่าช่องนี้ผ่านการตั้งค่า JDK ของ Gradle ใน Android Studio: ไฟล์ (หรือ Android Studio ใน macOS) > การตั้งค่า > บิลด์ การดำเนินการ การปรับใช้งาน > เครื่องมือสร้าง > Gradle
โปรเจ็กต์ใหม่จะใช้ #GRADLE_LOCAL_JAVA_HOME
โดยค่าเริ่มต้น ระบบจะย้ายข้อมูลโปรเจ็กต์ที่มีอยู่ไปยังมาโครใหม่โดยอัตโนมัติหลังจากซิงค์สําเร็จ เว้นแต่คุณจะใช้มาโครอย่าง #JAVA_HOME
อยู่แล้ว
ประโยชน์หลักๆ ของมาโครใหม่มีดังนี้
- คุณสามารถแก้ไขเส้นทาง JDK ด้วยตนเองเพื่อเรียกใช้การซิงค์ได้โดยไม่ต้องเปิดโปรเจ็กต์ก่อน
- ข้อผิดพลาดเกี่ยวกับ Gradle และเวอร์ชัน JDK ของโปรเจ็กต์ที่เข้ากันไม่ได้ลดลงเนื่องจากมีแหล่งข้อมูลเดียวสำหรับการเลือก JDK ของ Gradle
ปัญหาที่แก้ไขแล้ว
ปลั๊กอิน Android Gradle 8.2.0
ปัญหาที่แก้ไขแล้ว |
ปลั๊กอิน Android Gradle |
ประเภทแหล่งที่มาที่กําหนดเองควรสร้างชุดแหล่งที่มาหลายรูปแบบ
|
การตรวจสอบเวอร์ชัน SDK จะไม่จัดการผู้ใช้ส่วนขยาย SDK
|
DependenciesInfoBuilder ต้องการการอัปเดต API และเอกสาร
|
DexingNoClasspathTransform (minSdk >= 24) ที่มีเป้าหมายเป็น Java 11 ไม่สำเร็จเนื่องจากไม่มีสมาชิกที่ฝังอยู่
|
DslExtension.Builder.extendProjectWith() ไม่ทํางานตามที่อธิบายไว้ใน Groovy
|
เพิ่ม VariantSelector.withFlavor API ที่ไม่ได้ใช้ kotlin.Pair
|
AndroidLintAnalysisTask ( :lintAnalyzeExternalRelease) แคชไม่พบเนื่องจาก `proguard.txt` มีการเปลี่ยนแปลง
|
ไฟล์ Manifest ที่ผสานของแอปมีแอตทริบิวต์ extractNativeLibs และ useEmbeddedDex จาก Dependency
|
AIDL ไม่สําเร็จด้วย build-tools 33.0.0
|
AGP: แสดงเส้นทางไปยังเครื่องมือ AIDL และไฟล์ AIDL ของเฟรมเวิร์กเป็น API สาธารณะ
|
คำขอ: อนุญาตให้ IDE เสนอวิธีแก้ไขสำหรับ "PermittedSubclasses requires ASM9"
|
เป้าหมายไบต์โค้ด 17 เมื่อคอมไพล์ AGP
|
นํา VariantManager.getModifiedName ออก
|
AndroidTest.packaging.jniLibs.keepDebugSymbols ไม่ส่งผลต่อการจัดแพ็กเกจ androidTest
|
งานทดสอบการใช้เครื่องมือ GMD ค้าง และเมื่อลองอีกครั้งก็เริ่มล้มเหลว
|
generateLocaleConfig ใน agp 8.1.0 ใช้การจัดเรียงแบบไม่แน่นอน ซึ่งทำให้บิลด์ที่ซ้ำกันได้ใช้งานไม่ได้
|
ProcessApplicationManifest.navigationJsons มีไฟล์ที่มีเส้นทางแบบสัมบูรณ์
|
ระบบไม่อนุญาตให้เข้าถึง GradleBuildProject.Builder ผ่าน AnalyticsConfiguratorService หลังจากสร้าง AnalyticsService แล้ว
|
AndroidTest.packaging.jniLibs.keepDebugSymbols ไม่ส่งผลต่อการจัดแพ็กเกจ androidTest
|
การคอมไพล์ที่อนุญาตค่าสีที่ผิดกฎหมาย
|
"ReplaceWith" ของ VariantBuilder ไม่ถูกต้อง
|
Gradle 8.1 ทำให้แคชการกําหนดค่าใช้งานไม่ได้เนื่องจาก .gradle/.android/analytics.settings
|
ข้อความการเลิกใช้งานไม่ได้ใช้ "ReplaceWith"
|
แสดงวิธีรับเวอร์ชัน NDK เริ่มต้น
|
ปลั๊กอิน Android Gradle ต้องใช้ Java 17 เพื่อทำงาน
|
ASM Transform และ toAppend() ใช้ร่วมกันไม่ได้
|
แก้ไข LintErrors เมื่อเรียกใช้ Lint กับ K2 UAST ผ่าน Gradle ในโปรเจ็กต์ KMP
|
รองรับ missingDimensionStrategy ระดับตัวแปร และอาจรองรับ fallback ที่ตรงกับประเภท/Flavour ของบิลด์
|
ระบบนำ `android.injected.studio.version` ออกแล้วใน Android Studio Giraffe
|
เพิ่มความสามารถในการปิดใช้ AndroidXDependencyCheck
|
generateLocaleConfig ใน agp 8.1.0 ใช้การจัดเรียงแบบไม่แน่นอน ซึ่งทำให้บิลด์ที่ซ้ำกันได้ใช้งานไม่ได้
|
แสดงข้อกำหนดเวอร์ชัน R8 / D8 ในข้อมูลเมตา AAR (เช่น สำหรับ coreLibraryDesugaring และ API ใหม่ที่ไม่ได้อยู่ในบรรทัด)
|
คําเตือนการซิงค์: "ไม่ควรเข้าถึง GradleBuildProject.Builder ผ่าน AnalyticsConfiguratorService หลังจากสร้าง AnalyticsService แล้ว"
|
อัปเดตเป็น Gradle 8.2 รุ่นนําร่องหรือ RC
|
เข้าถึง "java.lang.Comparable" ไม่ได้
|
androidResources ไม่พร้อมใช้งานในโมดูลไลบรารี Android
|
การดําเนินการสำหรับงาน ":app:mergeReleaseClasses" ไม่สําเร็จหลังจากอัปเดต AGP จาก 8.0.2 เป็น 8.1.0
|
Gradle 8.1 ทำให้แคชการกําหนดค่าใช้งานไม่ได้เนื่องจาก .gradle/.android/analytics.settings
|
[AGP 8.1.0] ./gradlew test ดำเนินการไม่สำเร็จพร้อมข้อความ "ไม่พบเอาต์พุตไฟล์ Manifest" หากทั้ง splits.abi.isEnable และ testOptions.unitTests.isIncludeAndroidResources เป็น "จริง"
|
Android Studio Giraffe ไม่สนใจ versionCodeOverride เมื่อใช้ AGP 8.1
|
AGP 8.1.0 จะถอนการติดตั้งแอปหลังจากทำการทดสอบที่มีเครื่องมือวัด แต่ 7.4.2 จะไม่ถอนการติดตั้ง
|
การเปลี่ยนรูปแบบ APK ทําให้เกิดข้อผิดพลาดกับ ListingFileRedirectTask
|
HEDGEHOG REGRESSION: ปุ่มเรียกใช้ทำงานล่าช้า 2-3 วินาที (การสร้างข้อมูลจำเพาะ)
|
|
Dexer (D8) |
เปิดใช้เรคคอร์ดเนทีฟและคลาสที่ปิดผนึกเมื่อจัดทําการจัดทําดัชนีสําหรับ min-api 34 ขึ้นไป
|
|
Lint |
การตรวจสอบ Lint ที่สร้างขึ้นทันทีจัดการ AppComponentFactory ไม่ดี
|
Lint 8.2.0 เวอร์ชันอัลฟ่ายังไม่รองรับการนําเข้าฟังก์ชันระดับบนสุดใน Kotlin
|
เพิ่มตัวเลือกเพื่อไม่รวมหมายเลขบรรทัดและคอลัมน์ในข้อมูลพื้นฐานของ Lint
|
เพิ่มตัวเลือกเพื่อไม่รวมหมายเลขบรรทัดและคอลัมน์ในข้อมูลพื้นฐานของ Lint
|
การทดสอบ Lint ไม่รองรับฟีเจอร์ภาษาของ Java 17
|
Bumblebee 2021.1.1 แพตช์ 1 ระบุว่า commons-io เวอร์ชันเก่า (20030203.000550) ใหม่กว่า 2.11.0
|
Lint 8.2.0 เวอร์ชันอัลฟ่ายังไม่รองรับการนําเข้าฟังก์ชันระดับบนสุดใน Kotlin
|
Bumblebee 2021.1.1 แพตช์ 1 ระบุว่า commons-io เวอร์ชันเก่า (20030203.000550) ใหม่กว่า 2.11.0
|
Android Studio ทำเครื่องหมายเวอร์ชันที่ระบุว่าล้าสมัยอย่างไม่ถูกต้อง
|
Lint จะไม่สนใจปัญหา UseValueOf เมื่อใช้ K2 UAST
|
ปัญหาที่ไม่คาดคิดจากโปรเจ็กต์อื่นที่ Android Lint แจ้งว่าไม่ถูกต้อง
|
Android Lint ดำเนินการในไลบรารี KMP ไม่สำเร็จเนื่องจาก "พร็อพเพอร์ตี้ "variantInputs.name" ไม่มีค่าที่กำหนดค่าไว้"
|
|
การผสานรวม Lint |
ข้อผิดพลาด DuplicatePlatformClasses จาก Dependency testImplementation
|
|
Shrinker (R8) |
java.lang.VerifyError: Verifier rejected class
|
บิลด์ค้างอยู่ที่ :minifyReleaseWithR8 เมื่อใช้ไลบรารี Apache POI
|
Kotlin 1.9 ทําให้ R8 ทำลาย Lambda ของ Kotlin หากมีการนําการตรวจสอบค่า Null ออก
|
|
ปลั๊กอิน Android Gradle 8.2.1
ปัญหาที่แก้ไขแล้ว |
ปลั๊กอิน Android Gradle |
อย่าเรียกใช้งานการจัดทําไฟล์ Dex ในคลาสของโปรเจ็กต์ย่อยเมื่อจัดทําไฟล์ Dex ผ่านการเปลี่ยนรูปแบบอาร์ติแฟกต์แล้ว
|
ปลั๊กอิน Android Gradle ไม่สำเร็จด้วย JavaVersion.VERSION_11 และ OpenJDK 21 ea
|
|
Dexer (D8) |
กรองข้อมูลออกจากระเบียนสำหรับ Android U
|
|
Shrinker (R8) |
R8 สร้าง dex ที่ใช้งานไม่ได้ ซึ่งส่งผลให้เกิดข้อยกเว้นการแคสต์คลาสที่รันไทม์
|
R8 ทําให้อินเทอร์เฟซเปลี่ยนเป็นอินเทอร์เฟซที่เข้าถึงไม่ได้
|
R8 Flurry SDK ขัดข้องกับ AGP 8.2.0
|
Android - R8 ทําให้คลาสย่อยของ LinearLayoutManager ขัดข้อง
|
ClassCastException ใน R8 เมื่อเปิดการบรรจุใหม่และปิดการย่อโค้ด การปรับให้ยากต่อการอ่าน (Obfuscation) และการเพิ่มประสิทธิภาพ
|
R8 ค้างอยู่ใน BridgeAnalyzer.analyzeMethod
|
R8 v8.2.33, "java.lang.VerifyError: Bad type on operand stack" รันไทม์ขัดข้องหลังจากอัปเกรด
|
|
ปลั๊กอิน Android Gradle 8.2.2
ปัญหาที่แก้ไขแล้ว |
ปลั๊กอิน Android Gradle |
ตั้งค่า JaCoCo เวอร์ชันใน AGP 8.2.0 ไม่ได้
|
|
Dexer (D8) |
[desugared library] ไลบรารี Desugared เวอร์ชัน 2.1 ใช้ร่วมกับ R8 เวอร์ชันก่อนหน้าไม่ได้
|
การเพิ่มประสิทธิภาพทํางานแม้ใช้เพียง D8 หรือไม่
|
|
Shrinker (R8) |
[R8 8.3.21] R8 8.3.21 มีขนาดใหญ่กว่า R8 8.1.56 1.57 MB
|
class.getInterfaces() แสดงผลว่างเปล่า
|
|
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-02-28 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-02-28 UTC"],[],[]]