Trình bổ trợ Android cho Gradle 8.0.0 (tháng 4 năm 2023)

Trình bổ trợ Android cho Gradle 8.0.0 là một bản phát hành chính bao gồm nhiều các tính năng và cải tiến mới.

Khả năng tương thích

Phiên bản tối thiểu Phiên bản mặc định Lưu ý
Gradle 8.0 8.0 Để tìm hiểu thêm, hãy xem phần cập nhật Gradle.
Công cụ tạo SDK 30.0.3 30.0.3 Cài đặt hoặc định cấu hình Công cụ tạo SDK.
NDK Không áp dụng 25.1.8937393 Cài đặt hoặc định cấu hình phiên bản khác của NDK.
JDK 17 17 Để tìm hiểu thêm, hãy xem phần cài đặt phiên bản JDK.

Phát hành bản vá

Dưới đây là danh sách các bản phát hành của bản vá cho Trình bổ trợ Android cho Gradle 8.0.

Trình bổ trợ Android cho Gradle 8.0.2 (tháng 5 năm 2023)

Để biết danh sách lỗi đã khắc phục trong AGP 8.0.2, hãy xem các vấn đề đã xử lý đối với Android Studio 2022.2.1.

Trình bổ trợ Android cho Gradle 8.0.1 (tháng 5 năm 2023)

Bản cập nhật nhỏ này bao gồm các bản sửa lỗi sau:

Vấn đề đã khắc phục
Lỗi: "No VersionRequirement with the given id in the table" sau khi nâng cấp AGP 7.2.2 -> 7.4.0
Lỗi NullPointerException của R8 tại markTypeAsLive AGP 7.4.1
[R8 4.0.53] Lỗi xác minh lớp cứng trên Android 11

Thay đổi có thể gây lỗi: không gian tên bắt buộc trong tập lệnh bản dựng cấp mô-đun

Bạn phải đặt không gian tên trong tệp build.gradle.kts cấp mô-đun, thay vì tệp kê khai. Bạn có thể bắt đầu sử dụng thuộc tính DSL namespace từ AGP 7.3. Để tìm hiểu thêm, hãy xem Đặt không gian tên.

Khi di chuyển sang DSL không gian tên, hãy lưu ý các vấn đề sau:

  • Các phiên bản AGP trước đó suy luận không gian tên kiểm thử từ không gian tên chính, hoặc mã ứng dụng không chính xác trong một số trường hợp. Trợ lý nâng cấp AGP sẽ chặn quá trình nâng cấp nếu phát hiện thấy không gian tên chính và không gian tên kiểm thử của dự án giống nhau. Nếu quá trình nâng cấp bị chặn, bạn cần thay đổi testNamespace theo cách thủ công và sửa đổi mã nguồn cho phù hợp.
  • Sau khi bạn thay đổi không gian tên kiểm thử, có thể mã của bạn sẽ biên dịch nhưng kiểm thử đo lường sẽ không thành công trong thời gian chạy. Điều này có thể xảy ra nếu mã nguồn kiểm thử đo lường tham chiếu đến một tài nguyên được xác định trong cả androidTest và nguồn ứng dụng.

Để biết thêm thông tin, hãy xem nhận xét #19 trong vấn đề #191813691.

Thay đổi có thể gây lỗi: giá trị mặc định của tuỳ chọn tạo bản dựng

Kể từ AGP 8.0, các giá trị mặc định cho các cờ này đã thay đổi để cải thiện hiệu suất bản dựng. Để được trợ giúp điều chỉnh mã của bạn nhằm hỗ trợ một số những thay đổi này, hãy dùng Trợ lý nâng cấp AGP (Tools (Công cụ) > AGP Upgrade Assistant (Trợ lý nâng cấp AGP)). Trợ lý nâng cấp sẽ hướng dẫn bạn cập nhật mã để phù hợp với hành vi mới hoặc đặt cờ để giữ nguyên hành vi trước đó.

Gắn cờ Giá trị mặc định mới Giá trị mặc định trước đó Ghi chú
android.defaults.buildfeatures.buildconfig false true Theo mặc định, AGP 8.0 không tạo BuildConfig. Bạn cần để chỉ định tuỳ chọn này bằng cách sử dụng DSL trong các dự án mà bạn cần.
android.defaults.buildfeatures.aidl false true Theo mặc định, AGP 8.0 không hỗ trợ AIDL. Bạn cần chỉ định tuỳ chọn này bằng cách sử dụng DSL trong các dự án mà bạn cần. Cờ này là đã lên kế hoạch loại bỏ trong AGP 9.0.
android.defaults.buildfeatures.renderscript false true Theo mặc định, AGP 8.0 không bật tính năng hỗ trợ RenderScript. Bạn cần chỉ định tuỳ chọn này bằng cách sử dụng DSL trong các dự án mà bạn cần. Chiến dịch này cờ theo kế hoạch sẽ bị xoá trong AGP 9.0.
android.nonFinalResIds true false AGP 8.0 tạo các lớp R có các trường không phải là cuối cùng bằng cách mặc định.
android.nonTransitiveRClass true false AGP 8.0 tạo các lớp R cho các tài nguyên chỉ được xác định trong mô-đun hiện tại.
android.enableR8.fullMode true false Theo mặc định, AGP 8.0 sẽ bật chế độ đầy đủ cho R8. Để biết thêm thông tin, hãy xem Chế độ đầy đủ R8.

Thay đổi có thể gây lỗi: giá trị tuỳ chọn bản dựng được thực thi

Kể từ AGP 8.0, bạn không thể thay đổi giá trị cho các cờ này nữa. Nếu bạn chỉ định chúng trong tệp gradle.properties, giá trị sẽ bị bỏ qua và AGP in cảnh báo.

Gắn cờ Giá trị được thực thi Ghi chú
android.dependencyResolutionAtConfigurationTime.warn true AGP 8.0 sẽ đưa ra cảnh báo nếu phát hiện độ phân giải cấu hình trong giai đoạn cấu hình vì độ phân giải này ảnh hưởng tiêu cực đến thời gian cấu hình Gradle.
android.r8.failOnMissingClasses true AGP 8.0 sẽ gặp lỗi các bản dựng sử dụng R8 nếu thiếu các lớp để đảm bảo tối ưu hoá DEX tốt hơn. Để giải quyết vấn đề này, bạn cần thêm thiếu thư viện hoặc -dontwarn lưu giữ quy tắc. Để biết thêm thông tin, xem Thiếu cảnh báo lớp trong trình thu gọn R8.
android.testConfig.useRelativePath true Khi được hỗ trợ sử dụng tài nguyên, thành phần và tệp kê khai của Android trong kiểm thử đơn vị được bật, AGP 8.0 sẽ tạo ra một Tệp test_config.properties chỉ chứa tương đối đường dẫn. Điều này đảm bảo rằng các bài kiểm thử đơn vị Android luôn có thể sử dụng Gradle bộ nhớ đệm bản dựng.
android.useNewJarCreator true AGP sử dụng thư viện Zipflinger khi tạo tệp JAR để cải thiện hiệu suất của bản dựng.
android.bundletool.includeRepositoriesInDependencyReport true Khi bạn bật tính năng thêm thông tin phần phụ thuộc SDK trong tệp AAB và APK, AGP 8.0 cũng thêm danh sách kho lưu trữ dự án vào thông tin này. Người nhận tìm hiểu thêm, xem Thông tin về phần phụ thuộc dành cho Play Console.
android.enableArtProfiles true Giờ đây, hồ sơ cơ sở luôn được tạo. Hãy xem phần Hồ sơ cơ sở để biết thông tin chi tiết.
android.enableNewResourceShrinker true Sử dụng phương thức triển khai trình khám phá tài nguyên mới theo mặc định. Trình thu gọn tài nguyên mới hỗ trợ các tính năng động.
android.enableSourceSetPathsMap true Dùng để tính toán các mối liên kết đường dẫn tài nguyên tương đối, nhờ đó các bản dựng Gradle được cập nhật thường xuyên hơn.
android.cacheCompileLibResources true Theo mặc định, các tài nguyên thư viện đã biên dịch hiện có thể được lưu vào bộ nhớ đệm vì Gradle theo dõi các tệp tài nguyên liên quan đến vị trí dự án. Cần android.enableSourceSetPathsMap sẽ được bật.
android.disableAutomaticComponentCreation true Theo mặc định, AGP 8.0 không tạo SoftwareComponent. Thay vào đó, AGP chỉ tạo SoftwareComponents cho các biến thể được định cấu hình để phát hành bằng DSL phát hành.

Cờ ổn định mới cho hồ sơ thực thi

AGP bao gồm cờ mới android.settings.executionProfile. Sử dụng cờ này để ghi đè hồ sơ thực thi mặc định từ SettingsExtension. Để tìm hiểu thêm, hãy xem tài liệu về trình bổ trợ cài đặt.

Để xem trước cờ thử nghiệm, hãy xem ghi chú phát hành bản xem trước.

Không hỗ trợ chỉ định thuộc tính tải từng phần (lazy) của Kotlin

Nếu bạn đang dùng Kotlin DSL của Gradle cho các tập lệnh bản dựng, hãy lưu ý rằng Android Studio và AGP 8.0 không hỗ trợ tính năng chỉ định thuộc tính thử nghiệm bằng cách sử dụng Toán tử =. Để biết thêm thông tin về tính năng này, hãy xem ghi chú phát hànhtài liệu.

Danh mục nhiệm vụ của Trình phân tích bản dựng

Kể từ Android Studio Flamingo, Trình phân tích bản dựng có chế độ xem mặc định mới cho các nhiệm vụ có ảnh hưởng đến thời lượng bản dựng. Nếu dự án của bạn sử dụng AGP 8.0 trở lên, thay vì hiển thị từng tác vụ riêng lẻ, Trình phân tích bản dựng sẽ nhóm các tác vụ đó theo danh mục. Ví dụ: các tác vụ dành riêng cho Tài nguyên Android, Kotlin hoặc Dexing được nhóm lại với nhau rồi sắp xếp theo thời lượng bản dựng. Nhờ đó, bạn có thể dễ dàng biết được danh mục nào có tác động nhiều nhất đến thời gian xây dựng. Mở rộng từng danh mục sẽ hiện danh sách các tác vụ tương ứng. Để hiển thị riêng từng công việc, mà không cần nhóm, hãy sử dụng trình đơn thả xuống Nhóm theo.

Danh mục nhiệm vụ của Trình phân tích bản dựng.

Trình bổ trợ cài đặt mới

AGP 8.0.0-alpha09 ra mắt trình bổ trợ cài đặt mới. Trình bổ trợ cài đặt cho phép bạn tập trung các cấu hình chung — những cấu hình áp dụng cho tất cả các mô-đun — trong một nơi nên bạn không cần sao chép và dán cấu hình trong nhiều các mô-đun. Ngoài ra, bạn có thể sử dụng trình bổ trợ cài đặt để tạo công cụ hồ sơ thực thi hoặc các hướng dẫn khác về cách chạy công cụ và chuyển đổi giữa các tài sản.

Để sử dụng trình bổ trợ cài đặt, hãy áp dụng trình bổ trợ trong tệp settings.gradle:

apply plugin 'com.android.settings'

Tập trung cấu hình chung

Để định cấu hình cấu hình chung, hãy sử dụng khối android mới trong tệp settings.gradle. Ví dụ:

android {
  compileSdk 31
  minSdk 28
  ...
}

Cấu hình thực thi công cụ

Trình bổ trợ cài đặt cũng cho phép bạn tạo hồ sơ thực thi cho một số công cụ. Hồ sơ thực thi xác định cách chạy một công cụ; bạn có thể chọn nhiều hồ sơ thực thi tuỳ thuộc vào môi trường. Trong hồ sơ thực thi, bạn có thể đặt các đối số JVM cho một công cụ và định cấu hình công cụ đó để chạy trong một quy trình riêng biệt. Hiện tại, chỉ có Hỗ trợ công cụ R8.

Tạo hồ sơ thực thi và đặt hồ sơ thực thi mặc định trong tệp settings.gradle, như trong ví dụ sau:

android {
  execution {
    profiles {
      high {
        r8 {
          jvmOptions += ["-Xms2048m", "-Xmx8192m", "-XX:+HeapDumpOnOutOfMemoryError"]
          runInSeparateProcess true
        }
      }
      low {
        r8 {
          jvmOptions += ["-Xms256m", "-Xmx2048m", "-XX:+HeapDumpOnOutOfMemoryError"]
          runInSeparateProcess true
        }
      }
      ci {
        r8.runInSeparateProcess false
      }
    }
    defaultProfile "low"
  }
}

Để ghi đè hồ sơ mặc định, hãy chọn một hồ sơ khác bằng cách sử dụng android.experimental.settings.executionProfile thuộc tính trong Tệp gradle.properties:

android.experimental.settings.executionProfile=high

Bạn cũng có thể thiết lập thuộc tính này bằng dòng lệnh để thiết lập nhiều quy trình công việc. Ví dụ: nếu bạn có quy trình tích hợp liên tục bạn có thể sử dụng dòng lệnh để thay đổi hồ sơ thực thi mà không phải thay đổi tệp settings.gradle:

./gradlew assembleRelease \
  -Pandroid.experimental.settings.executionProfile=ci

Cần có JDK 17 để chạy AGP 8.0

Khi sử dụng Trình bổ trợ Android cho Gradle 8.0 để xây dựng ứng dụng, giờ đây bạn bắt buộc phải có JDK 17 để chạy được Gradle. Android Studio Flamingo có sẵn JDK 17 và định cấu hình Gradle để sử dụng theo mặc định, nghĩa là hầu hết người dùng Android Studio không cần phải thay đổi cấu hình cho dự án.

Nếu cần thiết lập phiên bản JDK mà AGP sử dụng trong Android Studio theo cách thủ công, bạn cần sử dụng JDK 17 trở lên.

Khi sử dụng AGP độc lập với Android Studio, hãy nâng cấp phiên bản JDK bằng cách thiết lập biến môi trường JAVA_HOME hoặc tuỳ chọn dòng lệnh -Dorg.gradle.java.home vào thư mục cài đặt JDK 17.

Vấn đề đã khắc phục

Trình bổ trợ Android cho Gradle 8.0.0

Vấn đề đã khắc phục
Trình bổ trợ Android cho Gradle
Lỗi bản dựng không ổn định trong thao tác MergeResources
Ngừng sử dụng JavaPluginConvention và HasConvention
Vị trí tệp không chính xác và không nhất quán cho API chuyển đổi mới
Trình bổ trợ Android cho Gradle không nên sử dụng chức năng GUtil.toWords(string) đã ngừng hoạt động
Trình bổ trợ Android cho Gradle không nên sử dụng chức năng ConfigureUtil.configure(closure, target) đã ngừng hoạt động
Cập nhật các kiểm thử AGP để sử dụng KGP 1.7.20-Beta
Gradle 7.4 không thành công (không tạo được phiên bản AnalyticsService)
"Hằng số enum không xác định" mới từ javac trên AGP 7.4.0-alpha09
Cấu hình MergeGeneratedProguardFilesCreationAction bị chậm ngay cả khi bộ nhớ đệm cấu hình đang bật
[AGP] Thêm thư mục nguồn đã tạo vào mô hình IDE (Variant API (API biến thể))
Ngừng sử dụng JavaPluginConvention và HasConvention
Không thêm ignorewarnings vào R8 theo mặc định
Cảnh báo khi không có tệp ProGuard
AGP 7.3.0 phá vỡ tính năng đồng bộ hoá gradle cho các dự án nền tảng gradle
Thư viện apksig: ApkVerifier$Result.getV4SchemeSigners() được đánh dấu là riêng tư
Ngừng tạo cấu hình androidJacocoAnt nếu không bật mức độ phù hợp
Việc sử dụng @IntDef trong một thành phần thư viện sẽ không tạo ra annotations.zip trong aar
Không tìm thấy kiểu super chung cho
Thêm phiên bản thuộc tính gradle của LINT_PRINT_STACKTRACE=true
Các cấu phần phần mềm Prefab cũ được đóng gói vào AAR
Di chuyển từ thuộc tính đích đến thuộc tính outputLocation để xử lý cảnh báo về việc ngừng sử dụng và chuẩn bị cho Gradle 9.0
Xem xét cờ "--release" khi thiết lập tác vụ trong JavaCompile
[AGP-7.3.0-beta03] ShrinkResourcesNewShrinkerTask gặp lỗi khi có dòng trống sau khi khai báo xml
Mục tiêu lintVital chạy theo mặc định trong biến thể gỡ lỗi
Cảnh báo khi không có tệp ProGuard
AGP cố gắng thêm kotlinOptions.freeCompilerArgs vào giai đoạn thực thi nhiệm vụ
Đồng bộ hoá Gradle không thành công: Không đồng bộ hoá được: lý do không xác định
DependencyReportTask không tương thích với bộ nhớ đệm cấu hình
Thao tác ghi đè tài nguyên bằng resValue trong build.gradle sẽ dẫn đến Error: Duplicate resources (Lỗi: Tài nguyên trùng lặp)
So với các loại bản dựng khác, bản dựng "debug" có khoá ký mặc định
Việc sử dụng các tính năng động và rút gọn tài nguyên gây ra sự cố về thời gian chạy
So với các loại bản dựng khác, bản dựng "debug" có khoá ký mặc định
Thư mục nguồn đã tạo được liệt kê dưới dạng thư mục Java trong nhà cung cấp nguồn chính của mô hình tìm lỗi mã nguồn
Gradle 8.0-milestone-2 gây ra ngoại lệ trong AGP
Tối ưu hoá việc hợp nhất tệp kê khai cho các ứng dụng và thư viện
Thêm gradle-settings-api vào quy trình tạo javadoc
"Hằng số enum không xác định" mới từ javac trên AGP 7.4.0-alpha09
AGP 7.4.0-alpha09 tạo các bản dựng không tải lên tính năng Phân phối ứng dụng Firebase
lint.xml trong các mô-đun không được xem xét để kiểm tra ĐÃ CẬP NHẬT của công việc tìm lỗi mã nguồn
Vấn đề với trình bổ trợ Android cho Gradle 7.0+ và Kiểm thử Android: Không tìm thấy tài nguyên: id
configureCMakeDebug dễ bị lỗi với ngoại lệ về con trỏ rỗng
IllegalAccessError nâng cấp dự án lên AS2022.2.1.5, FireBasePerfPlugin
Đồng bộ hoá không thành công với lỗi khó hiểu "Bộ sưu tập không chứa phần tử nào khớp với thuộc tính".
Instrumentation API không chuyển đổi các phần phụ thuộc tệp cục bộ
Lỗi "AnnotationProcessorOptions.arguments are queried" ("AnnotationProcessorOptions.arguments được truy vấn") khi cập nhật lên 7.4 Beta 1
Di chuyển các trình bổ trợ công khai cho Gradle sang gradle-api và xoá BasePlugin.getExtension
Không sử dụng r8.jvmArgs
JDK17 là phiên bản cần thiết tối thiểu cho AGP
AGP 8.0.0 A8 phá vỡ hồ sơ cơ sở
Thay đổi "compileSdkVersion" thành "compileSdk" trong thông báo CheckAarMetadataTask trong AGP 8.0
AGP 7.4.0-rc01 phá vỡ Variant API (API Biến thể) với nội dung "Querying the mapped value of map(provider(java.util.Set)) before task '...' has completed is not supported" (Truy vấn giá trị đã ánh xạ của map(provider(java.util.Set)) trước khi tác vụ "..." đã hoàn tất không được hỗ trợ)
Các vấn đề về "com.android.build.gradle.tasks.ShaderCompile" với bộ nhớ đệm cấu hình
Việc thêm vào tài nguyên Java bằng API AGP làm hỏng bộ nhớ đệm cấu hình
Trình bổ trợ tìm lỗi mã nguồn không thuộc gradle-api
DexingFileDependenciesTask.outputKeepRules là một thư mục nhưng lại được đánh dấu là OutputFile
Việc nâng cấp lên AGP 7.4 sẽ gây ra lỗi StackOverflowError
Không thực hiện được processDebugUnitTestManifest bằng phần giữ chỗ tệp kê khai cho các biến thể kiểm thử
Công cụ tìm lỗi mã nguồn truy cập vào thông tin về nhóm tài nguyên mà không cần phần phụ thuộc
Lỗi bản dựng đề cập đến API cấp 34, API này không tồn tại
Thông báo "We recommend using a newer Android Gradle plugin" (Bạn nên dùng trình bổ trợ Android mới hơn cho Gradle) khi không có trình bổ trợ mới hơn
android.injected.testOnly=false không có tác dụng
Dexer (D8)
Lỗi hợp nhất tệp dex liên quan đến tổng hợp toàn cục sau khi nâng cấp AS Canary 6 lên 7
Cập nhật thư viện siêu dữ liệu Kotlin lên phiên bản 0.6.0
Giải pháp thay thế cho JDK-8272564 dường như được yêu cầu ở API cấp 28-30
Tìm lỗi mã nguồn
Thao tác kiểm tra tìm lỗi mã nguồn ResourceType không hoạt động với các nguồn Kotlin
VersionChecks không xử lý việc kiểm tra khoảng Kotlin
Dương tính giả đối với InlinedApi khi được bao bọc
Trình phát hiện Recycle (Tái chế) của công cụ lint (tìm lỗi mã nguồn) báo lỗi dương tính giả liên quan đến openInputStream
[Công cụ xây dựng/Tìm lỗi mã nguồn] Thuộc tính hàm khởi tạo ChecksSdkIntAtLeast
Tìm lỗi mã nguồn: Quá trình hợp nhất PartialResults hoạt động không chính xác
Android Studio đánh dấu không chính xác phiên bản được chỉ định là đã lỗi thời.
AndroidDeprecatedInspection.DeprecatedFilter EP không bao giờ được đăng ký trong tệp android-plugin.xml
Nội dung giải thích về quy trình kiểm tra tìm lỗi mã nguồn của AccessibilityDetector đã lỗi thời
Quy trình kiểm tra Lint SDK_INT phải nắm rõ các biến cục bộ tạm thời
Lỗi khi TestMode.TYPE_JAWS thay thế loại hàm bằng typealias
Lỗi: khi tạo ObjectAnimator bên ngoài khối mã hiện tại, sẽ có cảnh báo dương tính giả về việc không khởi động ObjectAnimator #38
Tìm lỗi mã nguồn: NPE do truy vấn thực thể Ứng dụng ở chế độ mergeOnly
Quy tắc tìm lỗi mã nguồn NonConstantResourceId không thể phát hiện để chỉ định hằng số từ mã nhận dạng tài nguyên
không cho thấy lỗi trên mã nhận dạng khung hiển thị
Không giải trình tự được bộ nhớ đệm tài nguyên tìm lỗi mã nguồn dẫn đến lỗi trong tìm lỗi mã nguồn (nhưng phải là cảnh báo)
Hồi quy AGP Flamingo Alpha 8 Lint NewApi Desugar
TypedArray#close (API 31) không ở quy trình đơn giản hoá nhưng AS không hiển thị cảnh báo khi được dùng trong try-with-resources
Công cụ tìm lỗi mã nguồn không kiểm tra các lượt truyền hợp lệ của thiết bị nhận cuộc gọi
Công cụ tìm lỗi mã nguồn chỉ kiểm tra các lượt truyền an toàn đối với các giao diện được triển khai trực tiếp, chứ không phải các giao diện kế thừa
Tích hợp công cụ tìm lỗi mã nguồn
Tệp đường cơ sở nay là dữ liệu Đầu vào và Đầu ra của tác vụ tìm lỗi mã nguồn
Trình rút gọn (R8)
Lỗi với NPE/câu nhận định trong trình xác minh khung CF
Hồi quy sau khi xoá bộ nhớ đệm tra cứu trường
":app:minifyVariantWithR8" trả về lỗi NullPointerException trong AGP 7.4.0-beta02
R8: ClassNotFoundException khi -allowaccessmodification
Thêm tính năng hỗ trợ trình tiếp nhận ngữ cảnh trong siêu dữ liệu
java.lang.VerifyError: Trình xác minh từ chối lớp androidx.compose.ui.graphics.colorspace.o: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object) không xác minh được: void androidx.compose.ui.graphics.colorspace.o.(java.lang.Object): [0x0] không truy cập được trường thực thể java.lang.Object androidx.compose.ui.graphics.colorspace.n.a từ đối tượng thuộc loại Tham chiếu chính xác: androidx.compose.ui.graphics.colorspace.o
AGP 7.4.0/7.3.1 – Cố gắng đưa một hành động vào hàng đợi trong danh sách công việc của hàng đợi không thể đẩy
Rút gọn mã Renderscript: giảm hiệu suất đáng kể khi nâng cấp AGP từ 7.3.1 lên 7.4.0

Trình bổ trợ Android cho Gradle 8.0.1

Vấn đề đã khắc phục
Trình rút gọn (R8)
Lỗi: "No VersionRequirement with the given id in the table" sau khi nâng cấp AGP 7.2.2 -> 7.4.0
Lỗi NullPointerException của R8 tại markTypeAsLive AGP 7.4.1
[R8 4.0.53] Lỗi xác minh lớp cứng trên Android 11

Trình bổ trợ Android cho Gradle 8.0.2

Vấn đề đã khắc phục
Trình rút gọn (R8)
R8 không thành công trong quá trình tạo bản dựng bằng ArrayIndexOutOfBoundsException
VerifyError: Trình xác minh từ chối lớp khi sử dụng R8 với Kotlin 1.8.20
R8 trên AGP 8 làm gián đoạn dịch vụ Google Fit
Việc bao gồm thông tin tệp nguồn với các tên dư thừa, trùng lặp với tên đầu vào, không được biểu thị chính xác