Tháng 8 năm 2020, Dịch vụ Google Play cho AR (ARCore) đã ngừng hỗ trợ các ứng dụng chỉ hỗ trợ 32 bit trên một số thiết bị 64 bit. Tính năng hỗ trợ các ứng dụng chỉ hỗ trợ ARCore 32 bit trên các thiết bị 64 bit còn lại có thể bị xoá mà không có thông báo trong bản phát hành ARCore sắp tới. Các ứng dụng chỉ hỗ trợ ARCore 32 bit chạy trên thiết bị 32 bit sẽ không bị ảnh hưởng và tiếp tục được hỗ trợ.
Nếu bạn đã xuất bản phiên bản chỉ 32 bit (ví dụ: armeabi-v7a
) của ứng dụng hỗ trợ ARCore mà không phát hành phiên bản 64 bit (arm64-v8a
) tương ứng cho thiết bị 64 bit, thì bạn phải cập nhật ứng dụng đó bằng một phiên bản 64 bit tương thích cho thiết bị 64 bit.
Các ứng dụng hỗ trợ ARCore chỉ 32 bit nhưng không được cập nhật sẽ không tạo được phiên ARCore và có thể gặp sự cố khi cố gắng bắt đầu phiên thực tế tăng cường (AR) trên các thiết bị 64 bit bị ảnh hưởng.
Nếu bạn đặt thuộc tính android:use32bitAbi="true"
trong AndroidManifest.xml
của ứng dụng, thì ứng dụng đó sẽ chỉ sử dụng thư viện 32 bit. Mọi trải nghiệm AR trong ứng dụng của bạn sẽ cố gắng sử dụng ARCore ở chế độ 32 bit. Tuy nhiên, thư viện 32 bit sẽ không có trong dịch vụ Dịch vụ Google Play cho Thực tế tăng cường trên một số thiết bị 64 bit. Nếu không có các thư viện này, ứng dụng của bạn sẽ không tạo được phiên ARCore và có thể gặp sự cố khi cố gắng bắt đầu phiên thực tế tăng cường (AR) trên những thiết bị 64 bit bị ảnh hưởng. Điều này ảnh hưởng đến cả trải nghiệm thực tế tăng cường gốc lẫn trải nghiệm thực tế tăng cường dựa trên WebXR bên trong thành phần WebView.
Yêu cầu về phiên bản 64 bit của Cửa hàng Google Play
Yêu cầu về ARCore 64 bit được mô tả trong phần trước áp dụng cho tất cả thiết bị 64 bit, bất kể phiên bản Android và cấp độ API. Yêu cầu này mang tính riêng biệt và không liên quan đến yêu cầu về phiên bản 64 bit của Google Play có hiệu lực từ ngày 1 tháng 8 năm 2019. Yêu cầu này được đánh giá ở cấp bản phát hành ứng dụng và chỉ áp dụng cho các tệp APK hoặc gói ứng dụng được phân phối cho thiết bị chạy Android 9 Pie (API cấp 28) trở lên.
Tìm hiểu về tính năng hỗ trợ ARCore ABI
ARCore cho phép bạn xây dựng các ứng dụng hỗ trợ ABI Android sau đây:
32 bit (ví dụ: Ứng dụng
armeabi-v7a
) và 64 bit (arm64-v8a
) nhắm đến các thiết bị thực tế có hỗ trợ ARCoreỨng dụng 32 bit (
x86
) và 64 bit (x86_64
) chạy trong Trình mô phỏng Android
Khi bạn tạo một ứng dụng hỗ trợ ARCore, hệ thống xây dựng Android sẽ bao gồm một hoặc nhiều thư viện gốc ARCore (lib/…/libarcore_sdk*.so
) dành cho các ABI Android mà ứng dụng của bạn nhắm mục tiêu.
Trước đây, các ứng dụng chỉ hỗ trợ ARCore 32 bit có thể chạy trên cả thiết bị 32 bit và 64 bit. Tháng 8 năm 2020, Dịch vụ Google Play cho AR (ARCore) đã ngừng cung cấp thư viện gốc 32 bit trên một số thiết bị 64 bit. Tại thời điểm đó, các ứng dụng chỉ hỗ trợ ARCore 32 bit không thể chạy trên những thiết bị 64 bit bị ảnh hưởng nữa. Trong một bản phát hành sau này, các ứng dụng chỉ hỗ trợ ARCore 32 bit cũng có thể bị ngừng hỗ trợ mà không cần thông báo trước trên các thiết bị 64 bit còn lại.
Các ứng dụng hỗ trợ ARCore chỉ 32 bit nhưng không được cập nhật sẽ không tạo được phiên hoạt động và có thể gặp sự cố khi tìm cách bắt đầu phiên thực tế tăng cường (AR) trên những thiết bị 64 bit bị ảnh hưởng, cụ thể:
SDK ARCore | Chi tiết về lỗi tạo phiên |
---|---|
SDK ARCore dành cho Android (NDK) |
ArSession_create và ArSession_createWithFeatures sẽ trả về AR_ERROR_FATAL .
|
SDK ARCore dành cho Android (Java) |
Hàm khởi tạo của Phiên, Session(Context) và Session(Context, Set<Session.Feature>) , sẽ gửi một FatalException .
|
SDK ARCore dành cho Unity |
Khi bạn bật thành phần ARCoreSession (thường có trên prefab Thiết bị ARCore), ARCore sẽ không tạo được phiên ARCore và Session.Status sẽ là SessionStatus.FatalError .
|
AR Foundation (Unity) + Trình bổ trợ ARCore XR |
Do xảy ra sự cố trên luồng chính trong khi cố gắng tải các thư viện gốc ARCore 32 bit không tồn tại, ứng dụng sẽ ngừng kết xuất (màn hình đen) khi cố gắng bắt đầu một phiên thực tế tăng cường. |
Xác định xem có cần cập nhật ứng dụng hay không
Để kiểm tra xem ứng dụng đã phát hành của bạn có bao gồm các thư viện ARCore gốc bắt buộc để hỗ trợ thiết bị 64 bit hay không:
Chọn ứng dụng có hỗ trợ ARCore.
Mở rộng bản phát hành đang hoạt động của ứng dụng để xác minh rằng Nền tảng gốc có hỗ trợ 64 bit (
arm64-v8a
).
Cập nhật ứng dụng để hỗ trợ thiết bị 64 bit
Cách cập nhật một ứng dụng hiện có hỗ trợ ARCore chỉ 32 bit để bao gồm các thư viện gốc 64 bit:
Cập nhật dự án của bạn để sử dụng SDK ARCore mới nhất.
Tạo ứng dụng và phát hành ứng dụng bằng Google Play Console.
Google Play sẽ xác minh rằng ứng dụng của bạn đáp ứng yêu cầu về 64 bit có hiệu lực trước đó vào ngày 1 tháng 8 năm 2019 trên Cửa hàng Google Play. Để đảm bảo rằng ứng dụng hỗ trợ ARCore có tính năng hỗ trợ 64 bit (arm64-v8a
) cho tất cả thiết bị 64 bit, bất kể phiên bản Android hoặc cấp độ API.