ปลั๊กอิน 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 Daemon (กระบวนการเบื้องหลัง) สำหรับโปรเจ็กต์ได้ง่ายและปลอดภัยยิ่งขึ้น ระบบจะจัดเก็บเส้นทางการเลือกไว้ในฟิลด์ 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
|
เพิ่ม API VariantSelector.withFlavor ที่ไม่ได้ใช้ kotlin.Pair
|
AndroidLintAnalysisTask ( :lintAnalyzeExternalRelease) ไม่พบแคชเนื่องจาก `proguard.txt` มีการเปลี่ยนแปลง
|
ไฟล์ Manifest ของแอปที่ผสานรวมจะมีแอตทริบิวต์ extractNativeLibs และ useEmbeddedDex จากทรัพยากร Dependency
|
AIDL ล้มเหลวด้วยเครื่องมือสร้าง 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
|
รองรับ Variant level missingDimensionStrategy และอาจรองรับ build type/flavor matchingFallback
|
Android Studio Giraffe ได้นำ `android.injected.studio.version` ออกแล้ว
|
เพิ่มความสามารถในการปิดใช้ AndroidXDependencyCheck
|
generateLocaleConfig ใน AGP 8.1.0 ใช้การจัดลำดับแบบไม่แน่นอน ซึ่งทำให้บิลด์ที่ทำซ้ำไม่ได้
|
โฆษณาข้อกำหนดเวอร์ชัน R8 / D8 ในข้อมูลเมตา AAR (เช่น สำหรับ coreLibraryDesugaring และ API ใหม่ที่อยู่นอกบรรทัด)
|
คำเตือนการซิงค์: "ไม่ควรเข้าถึง GradleBuildProject.Builder ผ่าน AnalyticsConfiguratorService หลังจากสร้าง AnalyticsService แล้ว"
|
อัปเดตเป็นรุ่นเป้าหมายหรือ RC ของ Gradle 8.2
|
เข้าถึง "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 ล้มเหลวโดยมีข้อความ "Unable to find manifest output" หากทั้ง splits.abi.isEnable และ testOptions.unitTests.isIncludeAndroidResources เป็นจริง
|
Android Studio Giraffe ไม่รองรับ versionCodeOverride ด้วย AGP 8.1
|
AGP 8.1.0 ถอนการติดตั้งแอปหลังจากเรียกใช้การทดสอบที่มีการตรวจสอบ - 7.4.2 ไม่ถอนการติดตั้ง
|
การแปลง APK ทำให้เกิดข้อผิดพลาดกับ ListingFileRedirectTask
|
การถดถอยของเม่น: ปุ่มเรียกใช้จะล่าช้า 2-3 วินาที (การสร้างข้อกำหนด)
|
|
Dexer (D8) |
เปิดใช้คลาสที่บันทึกและปิดผนึกดั้งเดิมเมื่อ dexing สำหรับ min-api 34 ขึ้นไป
|
|
Lint |
การตรวจสอบ Lint ที่สร้างขึ้นไม่จัดการ AppComponentFactory ได้ดี
|
Lint 8.2.0 เวอร์ชันอัลฟายังไม่รองรับการนำเข้าฟังก์ชันระดับบนสุดใน Kotlin
|
เพิ่มตัวเลือกเพื่อไม่รวมหมายเลขบรรทัดและคอลัมน์ในพื้นฐานของ Lint
|
เพิ่มตัวเลือกเพื่อไม่รวมหมายเลขบรรทัดและคอลัมน์ในพื้นฐานของ Lint
|
การทดสอบ Lint ไม่รองรับฟีเจอร์ภาษาของ Java 17
|
Bumblebee 2021.1.1 Patch 1 ระบุว่า commons-io เวอร์ชันเก่า (20030203.000550) ใหม่กว่า 2.11.0
|
Lint 8.2.0 เวอร์ชันอัลฟายังไม่รองรับการนำเข้าฟังก์ชันระดับบนสุดใน Kotlin
|
Bumblebee 2021.1.1 Patch 1 ระบุว่า commons-io เวอร์ชันเก่า (20030203.000550) ใหม่กว่า 2.11.0
|
Android Studio ทำเครื่องหมายเวอร์ชันที่ระบุว่าล้าสมัยอย่างไม่ถูกต้อง
|
Lint จะไม่สนใจปัญหา UseValueOf เมื่อใช้ K2 UAST
|
ปัญหาที่ไม่คาดคิดจากโปรเจ็กต์อื่นที่เครื่องมือวิเคราะห์ซอร์สโค้ดของ Android แจ้ง
|
Android Lint ล้มเหลวในไลบรารี KMP ที่มี `property 'variantInputs.name' doesn't have a configured value.`
|
|
การผสานรวม Lint |
ข้อผิดพลาดของ Lint DuplicatePlatformClasses จากการขึ้นต่อกันของ testImplementation
|
|
Shrinker (R8) |
java.lang.VerifyError: Verifier rejected class
|
Build ค้างอยู่ที่ :minifyReleaseWithR8 เมื่อใช้ไลบรารี Apache POI
|
Kotlin 1.9 ทำให้ R8 ทำลาย Lambda ของ Kotlin หากมีการลบการตรวจสอบค่า Null
|
|
ปลั๊กอิน Android Gradle 8.2.1
ปัญหาที่แก้ไขแล้ว |
ปลั๊กอิน Android Gradle |
อย่าเรียกใช้งาน Dexing ในคลาสของโปรเจ็กต์ย่อยเมื่อมีการ 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 stuck in 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 library เวอร์ชัน 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-07-22 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-07-22 UTC"],[],[]]