در آگوست 2020، Google Play Services for AR (ARCore) پشتیبانی از برنامههای فقط 32 بیتی را در برخی از دستگاههای 64 بیتی حذف کرد. ممکن است در نسخه بعدی ARCore، پشتیبانی از برنامههای تنها 32 بیتی دارای ARCore در دستگاههای 64 بیتی باقیمانده بدون اطلاع قبلی حذف شود. برنامههای فعال ARCore فقط 32 بیتی که روی دستگاههای 32 بیتی اجرا میشوند تحت تأثیر قرار نگرفتهاند و همچنان پشتیبانی میشوند.
اگر نسخه 32 بیتی (مثلاً armeabi-v7a
) برنامه دارای ARCore خود را بدون انتشار نسخه 64 بیتی ( arm64-v8a
) مربوطه برای دستگاه های 64 بیتی منتشر کرده اید، باید برنامه خود را با یک برنامه سازگار به روز کنید. نسخه 64 بیتی برای دستگاه های 64 بیتی.
برنامههای دارای ARCore فقط 32 بیتی که بهروزرسانی نمیشوند در ایجاد جلسه ARCore شکست میخورند و ممکن است هنگام تلاش برای شروع یک جلسه واقعیت افزوده (AR) در دستگاههای 64 بیتی آسیبدیده از کار بیفتند .
اگر ویژگی android:use32bitAbi="true"
در AndroidManifest.xml
برنامه خود تنظیم کنید، برنامه شما فقط از کتابخانه های 32 بیتی استفاده می کند. هر تجربه AR در برنامه شما سعی می کند از ARCore در حالت 32 بیتی استفاده کند. با این حال، کتابخانه های 32 بیتی در سرویس Google Play Services for AR در برخی از دستگاه های 64 بیتی وجود نخواهد داشت. بدون این کتابخانهها، برنامه شما در ایجاد یک جلسه ARCore شکست میخورد و ممکن است هنگام تلاش برای شروع یک جلسه واقعیت افزوده (AR) در دستگاههای 64 بیتی آسیبدیده از کار بیفتد. این هم بر تجربیات AR بومی و هم تجربیات AR مبتنی بر WebXR در داخل یک مؤلفه WebView تأثیر می گذارد.
مورد نیاز فروشگاه Google Play 64 بیتی
نیاز 64 بیتی ARCore که در بخش قبل توضیح داده شد برای همه دستگاههای 64 بیتی، صرفنظر از نسخه Android و سطح API اعمال میشود. این الزام جدا است و به الزامات 64 بیتی Google Play که از 1 آگوست 2019 اعمال شد، که در سطح انتشار برنامه ارزیابی میشود و فقط برای فایلهای APK یا بستههای برنامه که در دستگاههای دارای Android 9 Pie توزیع میشوند اعمال میشود، مرتبط نیست. (سطح API 28) یا بالاتر.
درک پشتیبانی ARCore ABI
ARCore به شما امکان می دهد برنامه هایی بسازید که از ABI های Android زیر پشتیبانی می کنند:
برنامه های 32 بیتی (مثلا
armeabi-v7a
) و 64 بیتی (arm64-v8a
) که دستگاه های فیزیکی پشتیبانی شده از ARCore را هدف قرار می دهند.برنامه های 32 بیتی (
x86
) و 64 بیتی (x86_64
) که در شبیه ساز اندروید اجرا می شوند
وقتی یک برنامه با قابلیت ARCore میسازید، سیستم ساخت Android شامل یک یا چند کتابخانه بومی ARCore ( lib/…/libarcore_sdk*.so
) برای ABIهای Android هدفگیری شده توسط برنامه شما میشود.
برنامههای فقط 32 بیتی دارای ARCore قبلاً میتوانستند روی هر دو دستگاه 32 بیتی و 64 بیتی اجرا شوند. در آگوست 2020، سرویسهای Google Play برای AR (ARCore) شامل کتابخانههای بومی 32 بیتی در برخی از دستگاههای 64 بیتی متوقف شد، در آن زمان فقط برنامههای 32 بیتی دارای ARCore دیگر قادر به اجرا در دستگاههای 64 بیتی آسیبدیده نبودند. در نسخه بعدی، پشتیبانی از برنامههای تنها 32 بیتی دارای ARCore نیز ممکن است بدون اطلاع قبلی از دستگاههای 64 بیتی باقیمانده حذف شود.
برنامههای دارای ARCore فقط 32 بیتی که بهروزرسانی نمیشوند، در ایجاد جلسه شکست میخورند و ممکن است هنگام تلاش برای شروع یک جلسه واقعیت افزوده (AR) در دستگاههای 64 بیتی آسیبدیده از کار بیفتند، به ویژه:
ARCore SDK | جزئیات شکست ایجاد جلسه |
---|---|
ARCore SDK برای Android (NDK) | ArSession_create و ArSession_createWithFeatures AR_ERROR_FATAL را برمیگردانند. |
ARCore SDK برای اندروید (جاوا) | سازندههای Session، Session(Context) و Session(Context, Set<Session.Feature>) یک FatalException ایجاد میکنند. |
ARCore SDK برای Unity | هنگامی که مؤلفه ARCoreSession را فعال می کنید، که معمولاً در پیش ساخته دستگاه ARCore یافت می شود، ARCore در ایجاد جلسه ARCore شکست می خورد و Session.Status SessionStatus.FatalError خواهد بود. |
بنیاد AR (یونیتی) + پلاگین ARCore XR | هنگامی که برنامه سعی می کند جلسه AR را شروع کند، برنامه رندر (صفحه سیاه) را متوقف می کند، به دلیل خرابی در رشته اصلی در حالی که تلاش می کند کتابخانه های بومی 32 بیتی ARCore موجود را بارگیری کند. |
تعیین اینکه آیا برنامه شما باید به روز شود یا خیر
برای بررسی اینکه آیا برنامه منتشر شده شما شامل کتابخانه های بومی ARCore برای پشتیبانی از دستگاه های 64 بیتی است یا خیر:
کنسول Google Play را باز کنید.
برنامه دارای ARCore فعال خود را انتخاب کنید.
انتشار فعال برنامه را گسترش دهید تا تأیید کنید که پلتفرمهای Native دارای پشتیبانی 64 بیتی (
arm64-v8a
) هستند.
در حال به روز رسانی برنامه شما برای پشتیبانی از دستگاه های 64 بیتی
برای بهروزرسانی یک برنامه 32 بیتی موجود که دارای ARCore فعال است تا کتابخانههای بومی 64 بیتی را شامل شود:
پروژه خود را برای استفاده از آخرین ARCore SDK به روز کنید.
برنامه خود را بسازید و با استفاده از کنسول Google Play منتشر کنید.
Google Play تأیید میکند که برنامه شما با الزامات Google Play Store 64 بیتی مطابقت دارد که قبلاً در 1 اوت 2019 اجرا شده بود. برای اطمینان از اینکه برنامه دارای ARCore شما دارای پشتیبانی 64 بیتی ( arm64-v8a
) برای همه نسخههای 64 بیتی است. دستگاهها، صرف نظر از نسخه Android یا سطح API.