Mon projet fonctionne bien pendant les six derniers mois et l'application dans le Play Store. Pour une mise à jour, je rouvre le projet montre default_web_client non résolu pour le morceau de code suivant.
W/GoogleActivity: Google sign in failed com.google.android.gms.common.api.ApiException: 12500: at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source)
J'essaye les méthodes suivantes,
1.Nettoyer et reconstruire
2.Vider le cache et redémarrer
3 .Définissez getString (R.string.default_web_client_id)
comme une chaîne vide et exécutez le projet pour générer un fichier
app/build/generated/res/google-services/{build_type}/values/values.xml
comme instruction de ce lien
4.Remplacez la chaîne vide par getString (R.string.default_web_client_id)
Maintenant, je suis capable d'exécuter le projet et aussi de prendre la version release. Mais toujours, impossible de résoudre le symbole default_web_client_id.
Toute mise à jour serait utile ...
NB: L'ajout direct de oauth_client-> client_id
entraînera une erreur
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(getString(R.string.default_web_client_id)) .requestEmail() .build();
6 Réponses :
J'ai le même problème que vous. Après la mise à jour du studio Android, il obtient une erreur. Il n'y a pas besoin de réparer, car Google essaie de rendre votre application de plus en plus sécurisée. Si vous essayez de créer une autre valeur pour default_web_client_id, il affichera la variable dupplicate d'erreur. Pour trouver la valeur de default_web_client_id * Changez de mode pour Projet -> app -> build -> généré -> google-services -> debug -> values -> values.xml. Donc, cela ne cause aucune erreur lors de la compilation, vous n'avez pas besoin de le réparer. Laisser google résoudre le problème plus tard: D
J'ai mis à jour la version des services Google avec la dernière version de build.gradle au niveau du projet et j'ai bien fonctionné
classpath 'com.google.gms:google-services:4.2.0
J'ai le même problème avec mon code également
.requestIdToken(*My New Client Id*)
J'ai essayé clientID comme argument au lieu de R.string.default_web_client_id)
W/System.err: com.google.android.gms.common.api.ApiException: 12500:
et récupérez ce qui suit dans le code de débogage
.requestIdToken(*My Client Id*)
J'ai mis à jour les services Google vers la dernière version du projet build.gradle (google-serivces: 4.2.0)
! La solution qui a fonctionné pour moi!
Connectez-vous à la Developer Console
Identifiants> Créer des identifiants> Clé API
Cannot resolve symbol 'default_web_client_id'
6.Exécutez votre application :)
Aussi juste à noter, default_web_client_id est dans le values.xml
Qaleem Hussain: comment accéder par programme à l'ID client Web par défaut dans les valeurs, xml?
Affichage des packages> application> valeurs> values.xml
non, je veux dire PROGRAMMATIQUEMENT, en code JAVA comme: getResources.getString (R.string.STRING_ID);
Cela a fonctionné pour moi:
Accédez à la Google API Console et sélectionnez le projet souhaité
Regardez les ID client OAuth 2.0. Si vous ne disposez pas déjà de l'API du client Web, créez-en une, tapez Client Web, vous devez en créer une.
Accédez à la console Firebase, aux paramètres du projet et téléchargez le fichier google-service.json
Remplacez le fichier google-service dans votre projet.
Essayez de compiler. Cela vaut peut-être la peine de nettoyer le projet ou même le cache. S'il échoue toujours, alors soit:
le google-service-plugin ne génère pas la ressource car il ne trouve pas l'ID par défaut. Cela m'est arrivé, je ne sais pas pourquoi.
Le web_default_client est généré à partir de la clé de type 3, à l'intérieur de l'élément oauth_client. Voici comment le fichier json devrait être pour com.google.gms:google-services:4.3.2
:
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(<put here the Oauth client ID for Web Application type>) but is not good if you have different firebase projects at different flavors.S'il ne contient pas le nœud client_type 3 dans le tableau, ajoutez-le.
Un moyen beaucoup plus simple consiste à transmettre directement l'identifiant du jeton, comme ceci:
"oauth_client": [ { "client_id": "...", "client_type": 1, "android_info": { "package_name": "...", "certificate_hash": "..." } }, { "client_id": "<put here the Web type Oauth cliend id>, "client_type": 3 } ]
Remarques:
Avant de faire quoi que ce soit, j'ai téléchargé le fichier google-services.json le plus récent à partir de Firebase> Paramètres du projet et l'ai remplacé par celui du dossier du projet. Reconstruisez le projet et il est parti.
J'ai uniquement ouvert res (generated)> values> values.xml et rien de plus, l'erreur s'est terminée.
xxxxxxxx.apps.googleusercontent.com
Vérifiez ceci .
@AlexMamo J'essaye aussi ça mais je tombe en panne au démarrage de l'application
Avec quelle erreur?
@AlexMamo Maintenant, il ne montre aucun plantage après la désinstallation et l'installation
Avez-vous également essayé de transmettre le clientID comme argument au lieu de
R. string.default_web_client_id)
?@AlexMamo ya oauth_client-> client_id
Et quel est le comportement?
@AlexMamo a obtenu l'erreur ApiException: 12500: at com.google.android.gms.common.internal.ApiExceptionUtil.from Statut
@AlexMamo Une mise à jour ??