9

मैं Google Play गेम्स सेवाओं के साथ सरल गेम बनाने की कोशिश कर रहा हूं, लेकिन मैं Google Play गेम्स में साइन इन करने में विफल रहा।साइन इन करने में विफल। कृपया अपना नेटवर्क कनेक्शन जांचें और पुनः प्रयास करें

मैं इस त्रुटि मिलती है:।

प्रवेश करने में विफल अपना नेटवर्क कनेक्शन जांचें और पुन: प्रयास करें।

मेरे पास मुख्य गतिविधि है, और तीन fragmenets (मुख्यफ्रेगमेंट, गेमफ्रैगमेंट और परिणामफ्रेजमेंट) है।

मेनफ्रेगमेंट मुख्य मेनू के लिए खंड है, जहां गेम को शुरू करने के लिए क्लिक करने के लिए बटन का उपयोग होता है।

प्रमाणीकरण?

मैंने Google Play डेवलपर कंसोल में SHA-1 के साथ अपना गेम लिंक और अधिकृत किया है।

जैसा कि मैं एंड्रॉइड स्टूडियो का उपयोग करता हूं, मेरा पैकेज नाम कुछ ऐसा दिखता है: aplikacijezaandroid.thebuttonchallenge, और मैंने Google Play डेवलपर कंसोल पर लिंक किए गए ऐप्स में दो ऐप संस्करण जोड़े।

तो मैं com.aplikacijezaandroid.thebuttonchallenge, और aplikacijezaandorid.thebuttonchallenge

एप्लिकेशन आईडी नहीं है?

मैंने ऐप आईडी और लीडरबोर्ड आईडी को स्ट्रिंग्स.एक्सएमएल में जोड़ा और मैंने एंड्रॉइड मैनिफेस्ट में मेटा टैग जोड़ा। AndroidManifest.xml

परीक्षण में

मैं जोड़ लिया है इंटरनेट अनुमति?

मैं एंड्रॉइड स्टूडियो से भौतिक डिवाइस के साथ ऐप का परीक्षण और डीबग करता हूं और मेरा Google जीमेल डेवलपर कंसोल में परीक्षण उपयोगकर्ता के रूप में जोड़ा गया है।

यहाँ मेरी AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="aplikacijezaandroid.thebuttonchallenge" > 

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/app_id"/> 
    <meta-data android:name="com.google.android.gms.version" 

    android:value="@integer/google_play_services_version"/> 
    </application> 

है यहाँ MainActivity वर्ग है:

public class MainActivity extends Activity implements MainMenuFragment.Listener, 
GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, 
GameFragment.Listener, ResultFragment.Listener { 

//Fragments 
MainMenuFragment mMainFragment; 
GameFragment mGameFragment; 
ResultFragment mResultFragment; 

// Client used to interact with Google APIs 
private GoogleApiClient mGoogleApiClient; 

// Are we currently resolving a connection failure? 
private boolean mResolvingConnectionFailure = false; 

// Has the user clicked the sign-in button? 
private boolean mSignInClicked = false; 

// Automatically start the sign-in flow when the Activity starts 
private boolean mAutoStartSignInFlow = true; 

// request codes we use when invoking an external activity 
private static final int RC_RESOLVE = 5000; 
private static final int RC_UNUSED = 5001; 
private static final int RC_SIGN_IN = 9001; 

//Debug 
private String TAG = "IGRA"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // Create the Google API Client with access to Plus and Games 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(Plus.API).addScope(Plus.SCOPE_PLUS_LOGIN) 
      .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
      .build(); 

    //Fragments 
    mMainFragment = new MainMenuFragment(); 
    mGameFragment = new GameFragment(); 
    mResultFragment = new ResultFragment(); 

    // listen to fragment events 
    mMainFragment.setListener(this); 
    mGameFragment.setListener(this); 
    mResultFragment.setListener(this); 

    //Treba dodati listenere 


    // add initial fragment (welcome fragment) 
    if (savedInstanceState == null) { 
     getFragmentManager().beginTransaction().add(R.id.container, mMainFragment).commit(); 
    } 
} 

// Switch UI to the given fragment 
void switchToFragment(Fragment newFrag) { 
    getFragmentManager().beginTransaction().replace(R.id.container, newFrag) 
      .commit(); 
} 

private boolean isSignedIn() { 
    return (mGoogleApiClient != null && mGoogleApiClient.isConnected()); 
} 

@Override 
protected void onStart() { 
    super.onStart(); 
    Log.d(TAG, "onStart(): connecting"); 
    mGoogleApiClient.connect(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    Log.d(TAG, "onStop(): disconnecting"); 
    if (mGoogleApiClient.isConnected()) { 
     mGoogleApiClient.disconnect(); 
    } 
} 

@Override 
public void onStartGameRequested() { 
    startGame(); 
} 

@Override 
public void onShowAchievementsRequested() { 

} 

@Override 
public void onShowLeaderboardsRequested() { 

} 

void startGame(){ 
    switchToFragment(mGameFragment); 
} 

public void onEnteredScore(int finalScore){ 

    mResultFragment.setFinalScore(finalScore); 

    // push those accomplishments to the cloud, if signed in 
    pushAccomplishments(finalScore); 

    // switch to the exciting "you won" screen 
    switchToFragment(mResultFragment); 
} 

private void pushAccomplishments(int finalScore) { 

    if (!isSignedIn()) { 
     // can't push to the cloud, so save locally 
     // mOutbox.saveLocal(this); 
     Log.d(TAG, "can't push to the cloud, so save locally"); 
     return; 
    } 
    Games.Leaderboards.submitScore(mGoogleApiClient, getString(R.string.number_guesses_leaderboard), 
      finalScore); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

@Override 
public void onConnected(Bundle bundle) { 
    Log.d(TAG, "onConnected(): connected to Google APIs"); 
    // Show sign-out button on main menu 
    //mMainFragment.setShowSignInButton(false); 

    // Show "you are signed in" message on win screen, with no sign in button. 
    //mWinFragment.setShowSignInButton(false); 

    // Set the greeting appropriately on main menu 
    Player p = Games.Players.getCurrentPlayer(mGoogleApiClient); 
    String displayName; 
    if (p == null) { 
     Log.w(TAG, "mGamesClient.getCurrentPlayer() is NULL!"); 
     displayName = "???"; 
    } else { 
     displayName = p.getDisplayName(); 
    } 
    mMainFragment.setGreeting("Hello, " + displayName); 


    // if we have accomplishments to push, push them 
    /*if (!mOutbox.isEmpty()) { 
     pushAccomplishments(); 
     Toast.makeText(this, getString(R.string.your_progress_will_be_uploaded), 
       Toast.LENGTH_LONG).show(); 
    }*/ 
} 

@Override 
public void onWinScreenDismissed() { 
    switchToFragment(mMainFragment); 
} 

@Override 
public void onWinScreenSignInClicked() { 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 
    if (requestCode == RC_SIGN_IN) { 
     mSignInClicked = false; 
     mResolvingConnectionFailure = false; 
     if (resultCode == RESULT_OK) { 
      mGoogleApiClient.connect(); 
     } else { 
      BaseGameUtils.showActivityResultError(this, requestCode, resultCode, 
        R.string.signin_failure, R.string.signin_other_error); 
     } 
    } 
} 

@Override 
public void onConnectionSuspended(int i) { 
    Log.d(TAG, "onConnectionSuspended(): attempting to connect"); 
    mGoogleApiClient.connect(); 
} 

@Override 
public void onConnectionFailed(ConnectionResult connectionResult) { 
    Log.d(TAG, "onConnectionFailed(): attempting to resolve"); 
    if (mResolvingConnectionFailure) { 
     Log.d(TAG, "onConnectionFailed(): already resolving"); 
     return; 
    } 

    if (mSignInClicked || mAutoStartSignInFlow) { 
     mAutoStartSignInFlow = false; 
     mSignInClicked = false; 
     mResolvingConnectionFailure = true; 
     if (!BaseGameUtils.resolveConnectionFailure(this, mGoogleApiClient, connectionResult, 
       RC_SIGN_IN, getString(R.string.signin_other_error))) { 
      mResolvingConnectionFailure = false; 
     } 
    } 

    // Sign-in failed, so show sign-in button on main menu 
    mMainFragment.setGreeting(getString(R.string.signed_out_greeting)); 
    //mMainMenuFragment.setShowSignInButton(true); 
    // mWinFragment.setShowSignInButton(true); 
} 
+0

अपने खेल प्रकाशित किया जाता है के भीतर काम खत्म हो गया चिपकाया? – MadEqua

+0

मैंने अपना गेम प्रकाशित नहीं किया, और यहां तक ​​कि मैंने Google Play डेवलपर कंसोल पर एपीके अपलोड नहीं किया था। मैंने अभी गेम सेवाओं में नया गेम जोड़ा है और स्थिति परीक्षण के लिए तैयार है। – Zookey

उत्तर

5

मैं इस समस्या को हल कर लिया है, तो मैं जवाब पोस्ट करेंगे।

मैंने ऐप आईडी और लीडरबोर्ड आईडी को strings.xml से ids.xml में मूल्य फ़ोल्डर में स्थानांतरित कर दिया है।

मैंने सभी क्लाइंट आईडी हटा दिए हैं और डीबग कीस्टोर के लिए क्लाइंट आईडी को फिर से जोड़ दिया है और कीस्टोर जारी किया है।

+2

मैं एक ही त्रुटि में चल रहा हूं। मेरे पास पहले से ही आईडी आईडी है। लेकिन आप सभी क्लाइंट आईडी को हटाकर और फिर उन्हें जोड़कर क्या मतलब रखते हैं? मैंने एक नया डीबग कीस्टोर बनाने और एक नया ओएथ स्थापित करने की कोशिश की, यहां तक ​​कि एक नया गेम भी। लेकिन मैं इस अजीब गलती में दौड़ता रहता हूं। – Madmenyo

0

मेरे मामले में। मैंने एक परीक्षण खाता सेट किया है, लेकिन मेरे डिवाइस का एक डिफ़ॉल्ट खाता है जो एक और है, यही कारण है कि मुझे यह त्रुटि मिली। मेरी गलती लेकिन Google क्यों नहीं हमें एक और स्पष्ट त्रुटि रिपोर्ट देता है?

यहां बताया गया है कि मैंने यह कैसे किया।मेरा पूरा परीक्षण परीक्षण खाते का उपयोग कर डीबग संस्करण के तहत था। मैं Google play develper console और google api console दोनों में प्रोजेक्ट को हटाता हूं। और स्टैक ओवरफ्लो पर दूसरों द्वारा उल्लिखित एक को फिर से बनाएं। लेकिन इससे मदद नहीं मिलती। मैं इसे फिर से चलाता हूं और वैन में समाप्त होता हूं।

मैं लॉग में पाया cheked ये वही शब्द:

03-09 16: 15: 39.897: ई/GameAgent (1225): 15: 39.902 नेटवर्क 03-09 16 से आवेदन xxxxxxx प्राप्त करने में असमर्थ: ई/गेमएजेंट (1225): एप्लिकेशन आईडी xxxxxxx पैकेज com.gyj.pub.gpgsDemo से जुड़ा नहीं है। अपने मैनिफेस्ट में एप्लिकेशन आईडी की जांच करें। 03-09 16: 15: 39.906: ई/CheckGameplayAcl (23917): 15: 39.906: डब्ल्यू/SignInActivity (23917): onSignInFailed() ...

खेल 03-09 16 के लिए मेटाडाटा लोड करने में असमर्थ एक और, मैंने नीचे दिए गए सभी 3 तत्वों की जांच की है, यह तय करें कि क्लाइंट एपीके Google Play Deverloper कंसोल की कॉन्फ़िगरेशन के अनुरूप है या नहीं। 1. पैकेज नाम। यह सब वही है। 2. प्रमाणन SHA1 फिंगरप्रिंट। (डीबग और रिलीज़)। 3. सबसे अच्छा खाता।

उस समय भी मुझे एहसास नहीं हुआ कि मैंने अपने परीक्षणों के दौरान कोई खाता इनपुट नहीं किया है, डिवाइस कैसे पता चलता है कि साइन इन करने के लिए कौन सा खाता उपस्थित है? मैंने एक अन्य खाते की कोशिश की। मैंने इस खाते को जोड़ा जो डिवाइस पर टेस्ट अकाउंट के रूप में सोनसोल में सेट किया गया है, टाइपनंबर ऐप को फिर से देखा। यह मुझे दो खातों में से किसी एक को चुनने के लिए एक दृश्य दिखाता है।

3

यदि आपने अपना ऐप/गेम प्रकाशित नहीं किया है: प्रत्येक सामान्य चरण के बाद, सुनिश्चित करें कि आप अपने ऐप/गेम का परीक्षण किसी डिवाइस के साथ करते हैं, केवल परीक्षण खाता है। मैंने कुछ बार हर कदम की जांच की और इस अजीब समस्या के साथ समाप्त हो गया। आखिर में मैंने अपने ऐप का परीक्षण किसी डिवाइस के साथ किया है जिसमें केवल टेस्ट अकाउंट है जिसे मैंने डेवलपर कंसोल पर जोड़ा है। इसने काम कर दिया। मनाइए कि यह किसी और के लिए सहायक हो।

4

मेरे मामले में समस्या जीमेल खातों में से एक थी (दो में से) प्ले स्टोर में परीक्षकों के खातों में नहीं जोड़ा गया था और यह मेरे डिवाइस के लिए डिफ़ॉल्ट खाता था।

मैं दूसरे खाते (परीक्षकों playstore खाते) को डिफ़ॉल्ट बनाने के लिए खाते को निकाल दिया है और इसे वापस फिर से जोड़ा है, और यह

0

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

0

मेरे लिए यह है कि मेरा प्रोजेक्ट SHA1 एपीआई कंसोल में जैसा नहीं है।
1. मैंने this के माध्यम से मेरा चेक किया है।
2. https://console.developers.google.com और मेरे प्रोजेक्ट के "प्रमाण-पत्र" पृष्ठ में गया।
3. संपादित करें बटन (पेंसिल आइकन) पर क्लिक किया और अल्फ़ा या बीटा में, SHA1
4. < 2 मिनट

संबंधित मुद्दे