Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 29.06.2019
Сообщений: 29

Ошибки при авторизации в google service com.google.android.gms.common.api.ApiExc­eption: 10:

22.01.2022, 15:22. Показов 1925. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, столкнулся с очередной проблемой, прошу помощи у всех кто может хоть что то подсказать.
Итак, написал приложение и решил что было бы неплохо добавить рейтинг игроков. Погуглил как это делается, нашел информацию что начала нужно интегрировать приложение с гугл сервисами. В документации так и не разобрался толком. Поэтому делал в основном наугад, в итоге никак не могу избавиться от ошибки
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
D/SignInActivity: handleSignInResult:false
W/SignInActivity: handleSignInResult:error
    com.google.android.gms.common.api.ApiException: 10: 
        at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@18.0.1:3)
        at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(com.google.android.gms:play-services-auth@@19.2.0:3)
        at ru.kharchenko.spacefighter.TopActivity.onActivityResult(TopActivity.java:102)
        at android.app.Activity.dispatchActivityResult(Activity.java:8550)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:5583)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:5631)
        at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2336)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8653)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
В сети толком конкретного решения так и не нашел.
Часто встречается информация что нужно интегрировать файл google-service.json, файл скачал из console firebase, так же добавил уже кучу библиотек.

Code
1
2
3
4
5
6
7
8
9
implementation 'com.google.android.gms:play-services-games:22.0.1'
    implementation 'com.google.android.gms:play-services-location:19.0.1'
    implementation 'com.google.android.gms:play-services-ads:20.5.0'
    implementation 'com.google.android.gms:play-services-auth:20.0.1'
    implementation 'com.google.android.gms:play-services-base:18.0.1'
    implementation 'com.google.gms:google-services:4.3.10'
implementation 'com.google.firebase:firebase-auth:21.0.1'
implementation 'com.google.firebase:firebase-messaging:23.0.0'
implementation 'androidx.games:games-activity:1.0.0'
в манифесте добавил
XML
1
2
3
4
 <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"/>
Вот код моей активности
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
package ru.kharchenko.spacefighter;
 
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
 
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
 
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
import com.google.android.gms.common.Scopes;
import com.google.android.gms.common.SignInButton;
import com.google.android.gms.common.api.ApiException;
import com.google.android.gms.common.api.Scope;
import com.google.android.gms.tasks.Task;
 
 
public class TopActivity extends AppCompatActivity implements
        View.OnClickListener {
 
    private static final String TAG = "SignInActivity";
    private static final int RC_SIGN_IN = 9001;
 
    private GoogleSignInClient mGoogleSignInClient;
 
    private TextView mStatusTextView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_top);
        final int flag;
        flag = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        getWindow().getDecorView().setSystemUiVisibility(flag);
        mStatusTextView = findViewById(R.id.status);
 
        findViewById(R.id.sign_in_button).setOnClickListener(this);
        findViewById(R.id.sign_out_button).setOnClickListener(this);
        findViewById(R.id.disconnect_button).setOnClickListener(this);
 
        
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestScopes(new Scope(Scopes.DRIVE_APPFOLDER))
                .requestEmail()
                .build();
       
        
        mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
       
        @SuppressLint("WrongViewCast") SignInButton signInButton = findViewById(R.id.sign_in_button);
        signInButton.setSize(SignInButton.SIZE_STANDARD);
       
    }
 
    @Override
    public void onStart() {
        super.onStart();
 
        GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
        if (account != null && GoogleSignIn.hasPermissions(account, new Scope(Scopes.DRIVE_APPFOLDER))) {
            updateUI(account);
        } else {
            updateUI(null);
        }
    }
 
  
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
 
      
        if (requestCode == RC_SIGN_IN) {
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            int statusCode = result.getStatus().getStatusCode();
            Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
            handleSignInResult(task);
        }
    }
    
    private void handleSignInResult(@Nullable Task<GoogleSignInAccount> completedTask) {
        Log.d(TAG, "handleSignInResult:" + completedTask.isSuccessful());
 
        try {
           
            GoogleSignInAccount account = completedTask.getResult(ApiException.class);
            updateUI(account);
        } catch (ApiException e) {
            
            Log.w(TAG, "handleSignInResult:error", e);
            updateUI(null);
        }
    }
   
    private void signIn() {
        Intent signInIntent = mGoogleSignInClient.getSignInIntent();
        startActivityForResult(signInIntent, RC_SIGN_IN);
    }
   
    private void signOut() {
        mGoogleSignInClient.signOut().addOnCompleteListener(this, task -> {
           
            updateUI(null);
           
        });
    }
    
    private void revokeAccess() {
        mGoogleSignInClient.revokeAccess().addOnCompleteListener(this,
                task -> {
                   
                    updateUI(null);
                   
                });
    }
    
 
    private void updateUI(@Nullable GoogleSignInAccount account) {
        if (account != null) {
            mStatusTextView.setText(getString(R.string.signed_in_fmt, account.getDisplayName()));
 
            findViewById(R.id.sign_in_button).setVisibility(View.GONE);
            findViewById(R.id.sign_out_button).setVisibility(View.VISIBLE);
        } else {
            mStatusTextView.setText(R.string.signed_out);
 
            findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
            findViewById(R.id.sign_out_button).setVisibility(View.GONE);
        }
    }
 
    @SuppressLint("NonConstantResourceId")
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.sign_in_button:
                signIn();
                break;
            case R.id.sign_out_button:
                signOut();
                break;
            case R.id.disconnect_button:
                revokeAccess();
                break;
        }
    }
}
Ошибка возникает при выполнении вот этой строки
Java
1
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
Подскажите, кто нибудь, что еще нужно добавить и как можно бороться с данной ошибкой, заранее всем спасибо за дельные советы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2022, 15:22
Ответы с готовыми решениями:

Google Play Services Sign In / com.google.android.gms.common.api.ApiException: 10
Пробую запустить простейший семпл для авторизации в Google Play Services, но всё время получаю одну и ту же ошибку Мой код полностью...

Updating the version of com.google.android.gms to 11.8.0
при подключении Firebase Вот такая ошибка в gradle Please fix the version conflict either by updating the version of the google-services...

Странный блок в манифесте (com.google.android.gms.version)
Странный блок кода встраивающийся в файл манифеста программы &lt;meta-data ...

1
0 / 0 / 0
Регистрация: 29.06.2019
Сообщений: 29
28.01.2022, 09:01  [ТС]
Проблему решил, все таки проблема была в SHA-1, номер который генерирует консоль разработчика не совпадает с номером который генерирует android studio
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.01.2022, 09:01
Помогаю со студенческими работами здесь

Ошибки при запуске проекта с библиотекой Google Api
Здравствуйте. Столкнулся с проблемой. А именно когда использую Google Api в проекте, при запуске выскакивает вот такое сообщение: ...

Java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.chimera.GmsModuleInitializer"
java.lang.ClassNotFoundException: Didn't find class &quot;com.google.android.gms.chimera.GmsModuleInitializer&quot; on path:...

Статистика Google Play Service и баг Google Analytics
В процессе написания простейшего приложения с использованием Google Analytics v4 нашел забавный баг. Его последствия, методы лечения, и...

Error:Failed to find: com.google.android.gms:play-services-plus:7.8.0
Доброго времени суток пытаюсь подружиться с &quot;Google APIs for Android&quot;. Но не могу добавить dependencies например при добавлении следующей...

Процесс com.google.android.gms неожиданно остановлен - выдаёт каждые 5 сек
После очередной чистки девайса начало постоянно выводиться оповещение : Процесс com.google.android.gms неожиданно остановлен . По видимому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru