Во всплывающем аккаунте Google не отображается ошибка 12501 - PullRequest
0 голосов
/ 08 июля 2019

Прежде всего спасибо заранее за любую помощь. При попытке использовать Google Sign-In в моем приложении всплывающее окно для выбора учетной записи не отображается. Активность сразу же возвращается с ошибкой 12501. Она на мгновение затемняет экран и все.

Я скачал примеры отсюда https://github.com/googlesamples/google-services.git, и они работают нормально. Я могу войти и выйти без проблем, и всплывающее окно отображается правильно. Таким образом, я уверен, что мой ключ SHA1 правильный (сейчас я использую ключ отладки), и, видя, как работают примеры, я предполагаю, что мой клиент OAuth правильно настроен.

Таким образом, для подведения итогов образцы работают так, как задумано, но я не могу отобразить всплывающее окно с учетной записью для входа, когда я начинаю с пустой деятельности.

    public class MainActivity extends AppCompatActivity implements 
    View.OnClickListener{

    GoogleSignInClient m_googleSignInClient;
    String m_strEmail;

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

        GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).requestEmail().build();
        m_googleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions);
        findViewById(R.id.sign_in_button).setOnClickListener(this);
    }

    @Override
    public void onClick(View v)
    {
        Intent intentSignIn = m_googleSignInClient.getSignInIntent();
        startActivityForResult(intentSignIn, 9001);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if(requestCode == 9001)
        {
            Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
            try
            {
                GoogleSignInAccount account = task.getResult(ApiException.class);
                String m_strEmail = account.getEmail();
                Log.d("Data", "User Email: " + m_strEmail);
            }
            catch(ApiException e)
            {
                Log.w("API Exception", "signInResult:failed code=" + e.getStatusCode());
            }
        }
    }
}

и затем файл модуля моего модуля

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "net.test.chess"
        minSdkVersion 14
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

    configurations.all {
        resolutionStrategy.force 'com.android.support:support-annotations:27.1.0' }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.google.android.gms:play-services-auth:16.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

Единственное, что я получаю в Logcat, это:

handleWindowVisibility: no activity for token android.os.BinderProxy@ff6b471
signInResult:failed code=12501

1 Ответ

0 голосов
/ 12 июля 2019

Я знал, что это будет что-то действительно глупое.Я занимался этим почти неделю, и оказалось, что это опечатка ... Я не могу представить, чтобы кто-то еще имел эту проблему, но на всякий случай вот решение.

Это примеркод, который работал:

GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
        m_googleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions);
        findViewById(R.id.sign_in_button).setOnClickListener(this);

Это мой код, который не работал:

GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).requestEmail().build();
        m_googleSignInClient = GoogleSignIn.getClient(this, googleSignInOptions);
        findViewById(R.id.sign_in_button).setOnClickListener(this);

Я передавал DEFAULT_GAMES_SIGN_IN, тогда как в примерах используется DEFAULT_SIGN_IN.После того как я исправил это все работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...