ARCore 64-बिट के लिए ज़रूरी शर्तें

अगस्त 2020 में, Google Play Services for AR (ARCore) ने कुछ 64-बिट वाले डिवाइसों पर, सिर्फ़ 32-बिट वाले ऐप्लिकेशन के लिए सहायता बंद कर दी है. बाकी के 64-बिट डिवाइस पर, सिर्फ़ 32-बिट ARCore की सुविधा वाले ऐप्लिकेशन के लिए, आने वाले समय में आने वाली ARCore रिलीज़ से, बिना किसी सूचना के हटाया जा सकता है. 32-बिट वाले डिवाइसों पर चल रहे, सिर्फ़ 32-बिट वाले ARCore की सुविधा वाले ऐप्लिकेशन पर इसका कोई असर नहीं पड़ेगा और ये काम करते रहेंगे.

अगर आपने डेटा को सिर्फ़ 32-बिट-बिट के फ़ॉर्मैट में पब्लिश किया है (उदाहरण के लिए, अगर आपके पास ARCore की सुविधा वाले ऐप्लिकेशन का armeabi-v7a) वर्शन है, तो आपको ऐसा ऐप्लिकेशन अपडेट करना होगा जो 64-बिट वाले डिवाइसों के लिए, 64-बिट (arm64-v8a) वाला वर्शन पब्लिश न किया गया हो.

सिर्फ़ ऐसे ARCore की सुविधा वाले ऐप्लिकेशन जिन्हें अपडेट नहीं किया गया है, वे ARCore सेशन नहीं बना पाएंगे. साथ ही, जिन 64-बिट वाले डिवाइसों पर असर हुआ है उन पर ऑगमेंटेड रिएलिटी (एआर) सेशन शुरू करने पर क्रैश हो सकता है.

अगर ऐप्लिकेशन की AndroidManifest.xml में android:use32bitAbi="true" एट्रिब्यूट सेट किया जाता है, तो आपका ऐप्लिकेशन सिर्फ़ 32-बिट लाइब्रेरी का इस्तेमाल करेगा. आपके ऐप्लिकेशन में कोई भी एआर (ऑगमेंटेड रिएलिटी) इस्तेमाल करने पर, 32-बिट मोड में ARCore का इस्तेमाल किया जा सकता है. हालांकि, कुछ 64-बिट डिवाइसों पर Google Play Services for AR सेवा में 32-बिट लाइब्रेरी मौजूद नहीं होंगी. इन लाइब्रेरी के बिना, आपका ऐप्लिकेशन ARCore सेशन नहीं बना पाएगा. साथ ही, जिन 64-बिट डिवाइसों पर असर हुआ है उन पर ऑगमेंटेड रिएलिटी (एआर) सेशन शुरू करने पर क्रैश हो सकता है. इससे किसी वेबव्यू कॉम्पोनेंट में नेटिव एआर (ऑगमेंटेड रिएलिटी) और वेबएक्सआर पर आधारित एआर (ऑगमेंटेड रिएलिटी) अनुभव, दोनों पर असर पड़ता है.

Google Play Store का 64-बिट वाला वर्शन

पिछले सेक्शन में बताई गई ARCore 64-बिट की ज़रूरी शर्त, सभी 64-बिट डिवाइस पर लागू होती है, चाहे Android वर्शन और एपीआई लेवल कुछ भी हो. यह शर्त 1 अगस्त, 2019 को लागू हुई Google Play 64-बिट की ज़रूरी शर्त से अलग है. ऐप्लिकेशन रिलीज़ के लेवल पर इसका आकलन किया जाता है. यह सिर्फ़ उन APKs या ऐप्लिकेशन बंडल पर लागू होती है जो Android 9 Pie (एपीआई लेवल 28) या उसके बाद के वर्शन पर काम करने वाले डिवाइसों के लिए उपलब्ध कराए जाते हैं.

ARCore ABI के साथ काम करने वाली सुविधा को समझना

ARCore आपको ऐसे ऐप्लिकेशन बनाने देता है जो इन Android ABI के साथ काम करते हैं:

जब आप ARCore की सुविधा वाला ऐप्लिकेशन बनाते हैं, तो Android बिल्ड सिस्टम में आपके ऐप्लिकेशन की ओर से टारगेट किए गए Android ABI के लिए एक या एक से ज़्यादा ARCore नेटिव लाइब्रेरी (lib/…/libarcore_sdk*.so) शामिल की जाती हैं.

सिर्फ़ 32-बिट वाले ARCore वाले ऐप्लिकेशन, पहले 32-बिट और 64-बिट, दोनों डिवाइसों पर चलाए जा सकते थे. Google Play services for AR (ARCore) , अगस्त 2020 से बंद कर दिया गया है. इसमें 64-बिट वाले कुछ डिवाइसों में, 32-बिट वाली नेटिव लाइब्रेरी शामिल हैं. उस समय सिर्फ़ ARCore की सुविधा वाले ऐप्लिकेशन, 64-बिट वाले उन डिवाइसों पर नहीं चल सकते थे जिन पर असर हुआ था. आने वाले समय में, हो सकता है कि सिर्फ़ 32-बिट वाले ARCore वाले ऐप्लिकेशन के लिए, सहायता भी बाकी 64-बिट डिवाइसों से बिना किसी सूचना के हटा दी जाए.

सिर्फ़ 32-बिट वाले ARCore की सुविधा वाले ऐसे ऐप्लिकेशन जिन्हें अपडेट नहीं किया गया है, वे सेशन नहीं बना पाएंगे. साथ ही, जिन 64-बिट वाले डिवाइसों पर असर हुआ है उन पर ऑगमेंटेड रिएलिटी (AR) सेशन शुरू करने पर क्रैश हो सकता है, खास तौर पर:

ARCore SDK टूल सेशन नहीं बनने की जानकारी
Android के लिए ARCore SDK टूल (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 प्लगिन
जब ऐप्लिकेशन एआर (ऑगमेंटेड रिएलिटी) सेशन शुरू करने की कोशिश करता है, तो ऐप्लिकेशन रेंडरिंग (काली स्क्रीन) बंद हो जाता है. ऐसा 32-बिट ARCore नेटिव लाइब्रेरी को लोड करते समय, मुख्य थ्रेड पर क्रैश होने से होता है.

यह तय किया जा रहा है कि आपका ऐप्लिकेशन अपडेट करना ज़रूरी है या नहीं

यह देखने के लिए कि आपके पब्लिश किए गए ऐप्लिकेशन में 64-बिट डिवाइसों के साथ काम करने के लिए ज़रूरी स्थानीय ARCore लाइब्रेरी शामिल हैं या नहीं:

  1. Google Play Console खोलें.

  2. अपना ARCore-चालू ऐप्लिकेशन चुनें.

  3. ऐप्लिकेशन की चालू रिलीज़ को बड़ा करें, ताकि यह पुष्टि की जा सके कि नेटिव प्लैटफ़ॉर्म में 64-बिट (arm64-v8a) की सुविधा काम करती हो.

आपका ऐप्लिकेशन 64-बिट वाले डिवाइसों पर काम करने के लिए अपडेट किया जा रहा है

64-बिट वाली नेटिव लाइब्रेरी शामिल करने के लिए, सिर्फ़ 32-बिट वाले ARCore की सुविधा वाले मौजूदा ऐप्लिकेशन को अपडेट करने के लिए:

  1. सबसे नए ARCore SDK टूल का इस्तेमाल करने के लिए, अपना प्रोजेक्ट अपडेट करें.

  2. अपना ऐप्लिकेशन बनाएं और उसे Google Play Console का इस्तेमाल करके पब्लिश करें.

Google Play इस बात की पुष्टि करेगा कि आपका ऐप्लिकेशन 1 अगस्त, 2019 को लागू हुई Google Play Store 64-बिट की ज़रूरी शर्त को पूरा करता हो. यह पक्का करने के लिए कि ARCore की सुविधा वाला आपका ऐप्लिकेशन, सभी 64-बिट वाले डिवाइसों पर 64-बिट (arm64-v8a) काम करता है, चाहे Android वर्शन या एपीआई लेवल कुछ भी हो.