Android गेम में आने वाली समस्याओं को हल करना

इस पेज पर, Android डिवाइस को डेवलप करते समय आने वाली समस्याओं को हल करने का तरीका बताया गया है Play Games SDK टूल वाले गेम.

प्रवेश करने में असमर्थ

अगर आप अपने गेम में खिलाड़ियों को साइन इन नहीं कर पा रहे हैं, तो पहले यह पक्का करें कि आपने अपना क्लाइंट आईडी बनाने के लिए निर्देश और गेम सेवाओं को कॉन्फ़िगर करें. अगर आपको अब भी साइन इन करने की सुविधा मिलती है, तो गड़बड़ियां ठीक कर दी गई हैं, तो यह पक्का करने के लिए इन आइटम की जांच करें कि आपका गेम सही तरीके से सेट अप हुआ है या नहीं.

अपने मेटाडेटा टैग की जांच करना

आपके AndroidManifest.xml में गेम का मेटाडेटा टैग ज़रूर होना चाहिए. इसकी पुष्टि करने के लिए आपके मेटाडेटा टैग सही तरीके से सेट अप किए गए हैं:

  1. अपना AndroidManifest.xml खोलें और पुष्टि करें कि उसमें meta-data टैग शामिल है, जैसा कि नीचे दिखाया गया है:

    <meta-data android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/app_id" />
    
  2. अपने @string/app_id संसाधन की परिभाषा ढूंढें. आम तौर पर, इसकी जानकारी एक्सएमएल फ़ाइल में दी जाती है res/xml डायरेक्ट्री में मौजूद है, जैसे कि res/xml/strings.xml या res/xml/ids.xml.

  3. पुष्टि करें कि @string/app_id संसाधन का मान आपके ऐप्लिकेशन के अंकों वाले आईडी से मेल खाता हो. इस संसाधन के मान में सिर्फ़ अंक होने चाहिए. उदाहरण के लिए:

    <string name="app_id">123456789012</string>
    

अपने पैकेज का नाम देखें

आपके गेम के पैकेज का नाम, आपके क्लाइंट आईडी पर दिए गए पैकेज के नाम से मेल खाना चाहिए. पैकेज के नाम की पुष्टि करने के लिए:

  1. अपना AndroidManifest.xml खोलें और पुष्टि करें कि आपके गेम का पैकेज नाम सही है. पैकेज नाम, manifest टैग में package एट्रिब्यूट की वैल्यू है.
  2. क्लाइंट आईडी बनाते समय, दिए गए पैकेज के नाम की पुष्टि करें. इसमें पैकेज के नाम की पुष्टि करने के लिए Google Play Console, Google Play Console पर जाएं और अपने गेम से जुड़ी एंट्री पर क्लिक करें. लिंक किए गए ऐप्लिकेशन टैब पर जाएं और क्लाइंट आईडी की सूची की जांच करें. Android से लिंक किया गया होना चाहिए इस सूची में मौजूद ऐप्लिकेशन जिसका पैकेज नाम आपके AndroidManifest.xml में मौजूद पैकेज के नाम से मेल खाता है.
  3. अगर यह जानकारी मेल नहीं खाती है, तो पैकेज के सही नाम के साथ नया क्लाइंट आईडी बनाएं और साइन इन करने की कोशिश करें फिर से.

सर्टिफ़िकेट फ़िंगरप्रिंट की जांच करना

जिस सर्टिफ़िकेट से गेम पर साइन किया जा रहा है वह सर्टिफ़िकेट फ़िंगरप्रिंट से मेल खाना चाहिए आपके क्लाइंट आईडी से जुड़ा हुआ है. इसकी पुष्टि करने के लिए, पहले अपने प्रमाणपत्र का SHA1 फ़िंगरप्रिंट जांचें:

  1. अपनी प्रमाणपत्र फ़ाइल ढूंढें और उसका SHA1 फ़िंगरप्रिंट पाएं. पाने के लिए SHA1 फ़िंगरप्रिंट, इस निर्देश को चलाएं:

    keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v
    
  2. SHA1: लेबल वाले हेक्साडेसिमल अंकों के क्रम को आउटपुट. यह आपके सर्टिफ़िकेट का फ़िंगरप्रिंट होता है.

इसके बाद, देखें कि आपका बिल्ड टूल इस सर्टिफ़िकेट का इस्तेमाल कर रहा है या नहीं:

  1. बिल्ड टूल से अपने गेम का APK जनरेट करें और उस पर अपनी पसंद के मुताबिक साइन करें प्रमाणपत्र. जनरेट किए गए APK को, कुछ समय के लिए बनाई गई डायरेक्ट्री में कॉपी करें.
  2. अस्थायी डायरेक्ट्री में, अपने APK को अनज़िप करने के लिए नीचे दिया गया कमांड चलाएं.

    unzip YourGame.apk
    
  3. आरएसए सर्टिफ़िकेट फ़ाइल का इस्तेमाल करके निजी पासकोड जनरेट करें:

    keytool -printcert -file META-INF/CERT.RSA
    

    इसके अलावा, आपके पास डीएसए सर्टिफ़िकेट फ़ाइल का इस्तेमाल करके भी निजी पासकोड जनरेट करने का विकल्प है:

    keytool -printcert -file META-INF/CERT.DSA
    
  4. SHA1: लेबल वाली पंक्ति पर हेक्साडेसिमल अंकों के क्रम को नोट करें.

    अंकों का यह क्रम आपके प्रमाणपत्र फ़िंगरप्रिंट से मेल खाना चाहिए पिछला चरण. अगर कोई मैच नहीं होता है, तो आपका बिल्ड टूल या सिस्टम को आपके प्रमाणपत्र के साथ आपकी ऐप्स पर हस्ताक्षर करने के लिए कॉन्फ़िगर किया गया है. इस मामले में, कॉन्फ़िगर करने का तरीका जानने के लिए, अपने बिल्ड एनवायरमेंट के दस्तावेज़ देखें उसे ठीक करके फिर से प्रवेश करने का प्रयास करें.

इसके बाद, देखें कि सर्टिफ़िकेट फ़िंगरप्रिंट, कॉन्फ़िगर किए गए फ़िंगरप्रिंट से मेल खाता है या नहीं डालें. ऐसा करने के लिए:

  1. Google Play Console खोलें और अपने गेम पर जाएं.
  2. गेम की जानकारी वाले पेज पर, स्क्रोल करके नीचे जाएं. इसके बाद, गेम की जानकारी वाले पेज के लिंक पर क्लिक करें Google Cloud Platform प्रोजेक्ट से लिंक किया गया है.
  3. Google Cloud Platform में, अपना प्रोजेक्ट चुनें.
  4. बाईं ओर साइडबार में, एपीआई और प्रमाणीकरण. पक्का करें कि एपीआई की दिखाई गई सूची में, Google Play की गेम सेवाओं के एपीआई की स्थिति चालू है.
  5. बाईं ओर साइडबार में, रजिस्टर किए गए ऐप्लिकेशन चुनें.
  6. OAuth 2.0 क्लाइंट आईडी सेक्शन को बड़ा करें और सर्टिफ़िकेट नोट करें फ़िंगरप्रिंट (SHA1).

यदि यह फ़िंगरप्रिंट आपके प्रमाणपत्र के फ़िंगरप्रिंट से मेल नहीं खाता है, तो ऊपर दिए गए चरणों के मुताबिक, आपको सही सर्टिफ़िकेट के साथ एक नया क्लाइंट आईडी बनाना होगा फ़िंगरप्रिंट. आपको Google Play Console में नया क्लाइंट आईडी बनाना होगा, न कि Google Cloud Platform पर.

यह देखना कि टेस्ट खाते चालू हैं या नहीं

गेम को पब्लिश करने से पहले, यह ज़रूरी है कि Google Play Console में उसी खाते से गेम बनाया गया हो जिससे गेम बनाया गया है को टेस्टर के तौर पर चालू किया गया. यह देखने के लिए कि इस पैरामीटर को सही तरीके से कॉन्फ़िगर किया गया है या नहीं:

  1. Google Play Console खोलें और अपने गेम पर जाएं.
  2. टेस्टिंग टैब खोलें.
  3. देखें कि आपको जिस खाते से साइन इन करना है वह टेस्टर की सूची में शामिल हो.

अगर वह खाता सूचीबद्ध नहीं है जिससे आप साइन इन करने का प्रयास कर रहे हैं, तो उसे सूची में जोड़ें, कुछ मिनट इंतज़ार करें और फिर से साइन इन करने की कोशिश करें.

प्रोगार्ड से जुड़ी समस्याएं

अगर आप ProGuard का इस्तेमाल कर रहे हैं और आपको उलझाने वाले APK में गड़बड़ियां दिख रही हैं, तो टारगेट एपीआई लेवल की जांच करें आपके AndroidManifest.xml पर. पक्का करें कि यह 17 या उससे ज़्यादा पर सेट हो.

सेटअप से जुड़ी समस्याओं की अन्य वजहें

गड़बड़ियों की दूसरी आम वजहों की जांच करें:

  • अगर आपका गेम पब्लिश हो गया है, तो देख लें कि गेम की सेटिंग भी पब्लिश हो गई हों. अगर ऐसा किया जा सकता है, तो गेम सेटिंग पब्लिश किए बिना ऐप्लिकेशन पब्लिश करने के लिए. ऐसा करने के लिए, इस लिंक पर जाएं Google Play Console में जाएं और अपने ऐप्लिकेशन पर जाएं. इसके बाद, देखें कि क्या गेम के नाम के आगे दिए गए बॉक्स में यह जानकारी है यह प्रकाशित हो गया है. अगर यह संकेत मिले कि डिवाइस किसी दूसरी स्थिति में है, जैसे कि "पब्लिश करने के लिए तैयार" या "जांच के लिए तैयार", बॉक्स पर क्लिक करें और गेम पब्लिश करें को चुनें.
  • अगर आप अपना गेम प्रकाशित नहीं कर पा रहे हैं, तो जांच लें कि सटीक रूप से एक क्लाइंट आईडी में यह ऐप्लिकेशन नए इंस्टॉलेशन के लिए पसंदीदा विकल्प चालू है.

अनाम लिसनर

पहचान छिपाकर लिसनर का इस्तेमाल न करें. बिना नाम वाले लिसनर, लिसनर इंटरफ़ेस को लागू करते हैं जिन्हें इनलाइन परिभाषित किया गया है, जैसा कि नीचे दिखाया गया है.

    ImageManager im = ...;

    // Anonymous listener -- dangerous:
    im.loadImage(new ImageManager.OnImageLoadedListener() {
        @Override
        public void onImageLoaded(Uri uri, Drawable drawable) {
            // ...code...
        }
    }

पहचान छिपाकर लिसनर पर भरोसा नहीं किया जा सकता, क्योंकि Play Games SDK टूल उन्हें कमज़ोर पहचान फ़ाइलों के तौर पर बनाए रखता है. इसका मतलब है कि कचरा इकट्ठा करने वाला व्यक्ति, कचरा हटाने से पहले उस पर फिर से दावा कर सकता है शुरू किया गया. इसके बजाय, आपको स्थायी ऑब्जेक्ट का इस्तेमाल करके लिसनर लागू करना चाहिए जैसे कि Activity.

    public class MyActivity extends Activity
            implements ImageManager.OnImageLoadedListener {

        private void loadOurImages() {
            ImageManager im = ...;
            im.loadImage(this);
        }

        @Override
        public void onImageLoaded(Uri uri, Drawable drawable) {
            // ...code...
        }
    }