Trình bổ trợ Android cho Gradle 3.1.0 (tháng 3 năm 2018)

Phiên bản trình bổ trợ Android này yêu cầu:

  • Gradle 4.4 trở lên.

    Để tìm hiểu thêm, hãy đọc phần cập nhật Gradle.

  • Công cụ tạo bản dựng 27.0.3 trở lên.

    Xin lưu ý rằng bạn không cần chỉ định phiên bản cho công cụ xây dựng bằng thuộc tính android.buildToolsVersion vì theo mặc định, trình bổ trợ sẽ sử dụng phiên bản tối thiểu cần thiết.

Trình biên dịch DEX mới: D8

Theo mặc định, Android Studio hiện sử dụng trình biên dịch DEX mới có tên D8. Biên dịch DEX là quá trình chuyển đổi mã byte .class thành mã byte .dex cho Android Runtime (hoặc Dalvik cho các phiên bản Android cũ). So với trình biên dịch trước đây có tên DX, D8 biên dịch nhanh hơn và tạo các tệp DEX nhỏ hơn, trong khi vẫn có hiệu suất thời gian chạy ứng dụng bằng hoặc cao hơn.

D8 sẽ không thay đổi quy trình phát triển ứng dụng hằng ngày của bạn. Tuy nhiên, nếu bạn gặp bất cứ vấn đề nào liên quan đến trình biên dịch mới, vui lòng báo cáo lỗi. Bạn có thể tạm thời vô hiệu hoá D8 và sử dụng DX bằng cách đưa đoạn mã sau vào tệp gradle.properties của dự án:

      android.enableD8=false
    

Đối với các dự án sử dụng các tính năng ngôn ngữ Java 8, quá trình đơn giản hoá gia tăng được bật theo mặc định. Bạn có thể vô hiệu hoá tính năng này bằng cách chỉ định thông tin sau trong tệp gradle.properties của dự án:

      android.enableIncrementalDesugaring=false.
    

Người dùng xem trước: Nếu bạn đang sử dụng phiên bản xem trước của D8, hãy lưu ý rằng phiên bản này hiện biên dịch dựa trên các thư viện được đưa vào các công cụ xây dựng SDK (không phải JDK). Vì vậy, nếu bạn đang truy cập những API có trong JDK nhưng không có trong thư viện Công cụ tạo bản dựng của SDK, bạn sẽ gặp lỗi biên dịch.

Thay đổi về hành vi

  • Khi xây dựng nhiều APK mà mỗi APK lại nhắm mục tiêu đến một ABI khác, theo mặc định, trình bổ trợ sẽ không tạo APK cho các ABI sau đây nữa: mips, mips64armeabi.

    Nếu muốn xây dựng tệp APK nhắm đến những ABI như vậy, bạn phải sử dụng NDK r16b trở xuống và chỉ định ABI trong tệp build.gradle, như minh hoạ dưới đây:

              splits {
                  abi {
                      include 'armeabi', 'mips', 'mips64'
                      ...
                  }
              }
            
              splits {
                  abi {
                      include("armeabi", "mips", "mips64")
                      ...
                  }
              }
            
  • Bộ nhớ đệm bản dựng của trình bổ trợ Android nay xoá các mục cũ tồn tại hơn 30 ngày trong bộ nhớ đệm.

  • Hoạt động truyền "auto" cho resConfig không còn tự động chọn các tài nguyên chuỗi để đóng gói vào tệp APK. Nếu bạn tiếp tục sử dụng "auto", trình bổ trợ này sẽ đóng gói tất cả tài nguyên chuỗi mà ứng dụng và các phần phụ thuộc của ứng dụng đó cung cấp. Do đó, nên chỉ định từng ngôn ngữ mà bạn muốn trình bổ trợ đóng gói cho APK.

  • Vì các mô-đun cục bộ không thể phụ thuộc vào tệp APK kiểm thử của ứng dụng, nên thao tác bổ sung các phần phụ thuộc vào kiểm thử đo lường bằng cách sử dụng cấu hình androidTestApi (thay vì androidTestImplementation) sẽ khiến Gradle đưa ra cảnh báo sau:

            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            
            WARNING: Configuration 'androidTestApi' is obsolete
            and has been replaced with 'androidTestImplementation'
            

Sửa lỗi

  • Khắc phục vấn đề Android Studio không nhận dạng chính xác các phần phụ thuộc trong bản dựng kết hợp.
  • Sửa lỗi đồng bộ hoá dự án xảy ra khi tải trình bổ trợ Android nhiều lần trong một bản dựng – ví dụ: khi có nhiều dự án con và dự án con nào cũng đưa trình bổ trợ Android vào trong classpath của tập lệnh buildscript.