自 2020 年 8 月起,AR 專用 Google Play 服務 (ARCore) 已停止支援部分 64 位元裝置僅支援 32 位元應用程式。在後續的 64 位元裝置上,對於支援 32 位元專屬 ARCore 的應用程式可能會遭到移除,而不在後續的 ARCore 版本中發出通知。在 32 位元裝置上執行的 32 位元專用支援 ARCore 應用程式不受影響,仍將持續受支援。
如果您發布僅支援 32 位元版本 (例如armeabi-v7a
) 支援 ARCore 的應用程式版本,但未發布 64 位元裝置適用的對應 64 位元 (arm64-v8a
) 版本,您必須將應用程式更新至相容的 64 位元裝置相容 64 位元版本。
僅支援 ARCore 的 32 位元應用程式未更新,因此無法建立 ARCore 工作階段,且嘗試在受影響的 64 位元裝置上啟動擴增實境 (AR) 工作階段時可能會當機。
如果您在應用程式的 AndroidManifest.xml
中設定 android:use32bitAbi="true"
屬性,應用程式只會使用 32 位元程式庫。應用程式中所有的 AR 體驗都會嘗試在 32 位元模式中使用 ARCore。不過,部分 64 位元裝置的 Google Play 服務 - AR 適用服務不提供 32 位元程式庫。如果沒有這些程式庫,應用程式就無法建立 ARCore 工作階段,並在受影響的 64 位元裝置上啟動擴增實境 (AR) 工作階段時可能當機。這會影響 WebView 元件中的原生 AR 體驗和以 WebXR 為基礎的 AR 體驗。
Google Play 商店 64 位元版本規定
無論 Android 版本和 API 級別為何,上一節所述的 ARCore 64 位元規定適用於所有 64 位元裝置。這項規定與 Google Play 於 2019 年 8 月 1 日生效的 64 位元版本規定無關,無關。系統會在應用程式版本層級進行評估,而且僅適用於發行至搭載 Android 9 Pie (API 級別 28) 以上版本的裝置適用的 APK 或應用程式套件。
瞭解 ARCore ABI 支援
ARCore 可讓您建構支援下列 Android ABI 的應用程式:
32 位元 (例如
armeabi-v7a
) 和 64 位元 (arm64-v8a
) 應用程式,適用於支援 ARCore 的裝置在 Android Emulator 中執行的 32 位元 (
x86
) 和 64 位元 (x86_64
) 應用程式
您建構支援 ARCore 的應用程式時,Android 建構系統會針對應用程式鎖定的 Android ABI 納入一或多個 ARCore 原生資料庫 (lib/…/libarcore_sdk*.so
)。
支援 ARCore 的 32 位元應用程式先前可以在 32 位元和 64 位元裝置上執行。自 2020 年 8 月起,AR 專用 Google Play 服務 (ARCore) 已停止在部分 64 位元裝置上納入 32 位元原生程式庫。在此期間,僅支援 ARCore 的 32 位元應用程式將無法在受影響的 64 位元裝置上執行。在日後的版本中,我們也可能直接移除支援 32 位元專屬 ARCore 的應用程式,而不另行通知其他 64 位元裝置。
僅支援 ARCore 的 32 位元應用程式未更新,因此無法建立工作階段,而且在嘗試在受影響的 64 位元裝置上啟動擴增實境 (AR) 工作階段時可能會當機,具體情況如下:
ARCore SDK | 工作階段建立失敗詳細資料 |
---|---|
ARCore SDK for Android (NDK) |
ArSession_create 和 ArSession_createWithFeatures 會傳回 AR_ERROR_FATAL 。
|
Android 版 ARCore SDK (Java) |
工作階段建構函式 Session(Context) 和 Session(Context, Set<Session.Feature>) 會擲回 FatalException 。 |
Unity 適用的 ARCore SDK |
啟用 ARCoreSession 元件後 (通常位於「ARCore 裝置」預先庫中),ARCore 無法建立 ARCore 工作階段,且 Session.Status 為 SessionStatus.FatalError 。 |
AR Foundation (Unity) + ARCore XR 外掛程式 |
當應用程式嘗試啟動 AR 工作階段時,應用程式會停止轉譯 (黑色畫面),這是因為主要執行緒在嘗試載入不存在的 32 位元 ARCore 原生程式庫時當機。 |
判斷是否必須更新應用程式
如要檢查您發布的應用程式是否包含必要的原生 ARCore 程式庫,可支援 64 位元裝置:
開啟 Google Play 管理中心。
選取支援 ARCore 的應用程式。
展開應用程式的有效版本,確認原生平台支援 64 位元 (
arm64-v8a
) 支援。
更新應用程式以支援 64 位元裝置
如要更新支援 ARCore 的現有應用程式 (僅限 32 位元),以納入 64 位元原生程式庫,請按照下列步驟操作:
請將專案更新為使用最新版 ARCore SDK。
透過 Google Play 管理中心建構並發布應用程式。
Google Play 會驗證您的應用程式是否符合先前在 2019 年 8 月 1 日生效的 Google Play 商店 64 位元版本規定。為了確保支援 ARCore 的應用程式無論 Android 版本或 API 級別為何,支援 ARCore 的應用程式都會針對所有 64 位元裝置提供 64 位元 (arm64-v8a
) 支援。