Cài đặt và định cấu hình NDK và CMake

Để biên dịch và gỡ lỗi mã gốc cho ứng dụng, bạn cần có các thành phần sau:

  • Native Development Kit (NDK) cho Android: một bộ công cụ cho phép bạn sử dụng mã C và C++ với Android.
  • CMake: một công cụ bản dựng bên ngoài hoạt động cùng với Gradle để tạo thư viện gốc. Nếu bạn chỉ định sử dụng bản dựng ndk thì không cần đến thành phần này.
  • LLDB: Trình gỡ lỗi mà Android Studio sử dụng để gỡ lỗi mã gốc. Theo mặc định, LLDB sẽ được cài đặt cùng với Android Studio.

Trang này mô tả cách cài đặt các thành phần này tự động hoặc bằng cách sử dụng Android Studio hoặc công cụ sdkmanager để tải các thành phần đó theo cách thủ công.

Cài đặt NDK và CMake tự động

Android Gradle Plugin (Trình bổ trợ Android cho Gradle) 4.2.0 trở lên có thể tự động cài đặt thành phần NDK và CMake cần thiết vào lần đầu tiên bạn tạo dự án nếu giấy phép của các thành phần này đã được chấp nhận trước. Nếu đã đọc và đồng ý với các điều khoản cấp phép, thì bạn có thể chấp nhận trước các giấy phép trong tập lệnh bằng lệnh sau:

   yes | ${sdk}/cmdline-tools/latest/bin/sdkmanager --licenses

Cài đặt NDK và CMake

Khi bạn cài đặt NDK, Android Studio sẽ chọn phiên bản NDK mới nhất hiện có. Với hầu hết các dự án, chỉ cần cài đặt phiên bản NDK mặc định này là đủ. Tuy nhiên, nếu dự án của bạn cần một hoặc nhiều phiên bản NDK cụ thể, bạn có thể tải và định cấu hình các phiên bản cụ thể. Việc này giúp bạn đảm bảo các bản dựng có thể tái tạo trên các dự án mà mỗi dự án phải phụ thuộc vào một phiên bản NDK cụ thể Android Studio sẽ cài đặt tất cả các phiên bản của NDK trong thư mục android-sdk/ndk/.

Để cài đặt CMake và NDK mặc định trong Android Studio, hãy làm như sau:

  1. Khi một dự án đang mở, hãy nhấp vào Tools (Công cụ) > SDK Manager (Trình quản lý SDK).

  2. Nhấp vào thẻ SDK Tools (Bộ công cụ SDK).

  3. Đánh dấu vào các ô NDK (Side by side)CMake.

    Hình ảnh Trình quản lý SDK Hình 1. Cửa sổ SDK Tools (Công cụ SDK) hiển thị tuỳ chọn NDK (Side by side) (NDK (Song song))

  4. Nhấp vào OK.

    Một hộp thoại sẽ thông báo cho bạn mức dung lượng mà gói NDK đã tiêu thụ trên ổ đĩa.

  5. Nhấp vào OK.

  6. Khi quá trình cài đặt hoàn tất, hãy nhấp vào Hoàn tất (Finish).

  7. Dự án của bạn sẽ tự động đồng bộ hóa tệp bản dựng và thực hiện một bản dựng. Giải quyết mọi lỗi xảy ra.

Định cấu hình một phiên bản CMake cụ thể

Trình quản lý SDK bao gồm phiên bản phát triển nhánh 3.6.0 của CMake và phiên bản 3.10.2. Các dự án không đặt phiên bản CMake cụ thể sẽ được dựng bằng CMake 3.10.2. Để đặt phiên bản CMake, hãy thêm nội dung sau vào tệp build.gradle của mô-đun:

Groovy

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version "cmake-version"
        }
    }
}

Kotlin

android {
    ...
    externalNativeBuild {
        cmake {
            ...
            version = "cmake-version"
        }
    }
}

Nếu bạn muốn sử dụng một phiên bản CMake không có trong Trình quản lý SDK, hãy thực hiện theo các bước sau:

  1. Tải và cài đặt CMake từ trang web chính thức của CMake.
  2. Chỉ định phiên bản CMake mà bạn muốn Gradle sử dụng trong tệp build.gradle của mô-đun.
  3. Thêm đường dẫn đến tệp cài đặt CMake vào biến môi trường PATH hoặc đưa đường dẫn vào tệp local.properties của dự án, như minh hoạ dưới đây. Nếu Gradle không tìm thấy phiên bản CMake mà bạn đã chỉ định trong tệp build.gradle thì bạn sẽ gặp lỗi bản dựng.

    # If you set this property, Gradle no longer uses PATH to find CMake.
    cmake.dir = "path-to-cmake"</pre>
    
  4. Nếu bạn chưa cài đặt hệ thống xây dựng Ninja trên máy trạm, hãy truy cập trang web chính thức của Ninja, rồi tải xuống và cài đặt phiên bản Ninja mới nhất có sẵn cho hệ điều hành của bạn. Đừng quên thêm đường dẫn đến tệp cài đặt Ninja vào biến môi trường PATH.

Cài đặt một phiên bản NDK cụ thể

Để cài đặt một phiên bản NDK cụ thể, hãy làm như sau:

  1. Khi một dự án đang mở, hãy nhấp vào Tools (Công cụ) > SDK Manager (Trình quản lý SDK).

  2. Nhấp vào thẻ SDK Tools (Bộ công cụ SDK).

  3. Đánh dấu vào ô Show Package Details (Hiển thị chi tiết gói).

  4. Đánh dấu vào ô NDK (Side by side) và các ô bên dưới tương ứng với các phiên bản NDK mà bạn muốn cài đặt. Android Studio sẽ cài đặt tất cả phiên bản của NDK vào thư mục android-sdk/ndk/.

    Hình ảnh cửa sổ SDK Tools (Công cụ SDK) Hình 2. Cửa sổ SDK Tools (Công cụ SDK) hiển thị tuỳ chọn NDK (Side by side) (NDK (Song song))

  5. Nhấp vào OK.

    Một hộp thoại sẽ thông báo cho bạn mức dung lượng mà (các) gói NDK đã tiêu thụ.

  6. Nhấp vào OK.

  7. Khi quá trình cài đặt hoàn tất, hãy nhấp vào Hoàn tất (Finish).

  8. Dự án của bạn sẽ tự động đồng bộ hóa tệp bản dựng và thực hiện một bản dựng. Giải quyết mọi lỗi xảy ra.

  9. Định cấu hình mỗi mô-đun với phiên bản NDK bạn muốn sử dụng. Khi sử dụng Android Studio phiên bản 3.6 trở lên, nếu bạn không chỉ định phiên bản thì trình bổ trợ Android cho Gradle sẽ chọn một phiên bản tương thích đã biết.

Định cấu hình các phiên bản NDK cụ thể trong dự án của bạn

Bạn có thể phải định cấu hình phiên bản NDK trong dự án của mình nếu một trong các điều kiện sau xảy ra:

  • Dự án của bạn là dự án kế thừa và bạn cần phải sử dụng các phiên bản NDK và trình bổ trợ Android cho Gradle (AGP) cụ thể. Để biết thêm thông tin, hãy xem bài viết Định cấu hình NDK cho trình bổ trợ Android cho Gradle.
  • Bạn đã cài đặt nhiều phiên bản NDK và muốn sử dụng một phiên bản cụ thể. Trong trường hợp này, hãy chỉ định phiên bản bằng cách sử dụng thuộc tính android.ndkVersion trong tệp build.gradle của mô-đun, như minh họa trong mã mẫu sau đây.

    Groovy

    android {
        ndkVersion "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }

    Kotlin

    android {
        ndkVersion = "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
    }

Phiên bản NDK mặc định cho mỗi phiên bản AGP

Trước khi phát hành, mỗi phiên bản AGP đều được thử nghiệm kỹ lưỡng bằng bản phát hành NDK ổn định mới nhất tại thời điểm đó. Phiên bản NDK này được dùng để tạo dự án nếu bạn không chỉ định phiên bản NDK trong tệp build.gradle. Phiên bản NDK mặc định cho các phiên bản AGP được ghi lại trong ghi chú phát hành AGPghi chú phát hành trước đây của AGP.