J'utilise le code google-services.json
dans le dossier de l'application.J'utilise le code classpath 'com.google.gms:google-services:2.0.0
'dans le module racine Gradle.J'ai vérifié mon package sur la console du développeur et son correct, et j'ai ajouté la clé SHA1 obtenue en exécutant la commande. keytool -list -v -keystore ~/.Android/debug.keystore -alias androiddebugkey -storepass Android -keypass Android
sur le terminal (j'utilise ubuntu) .J'ai activé Google+ API.J'ai créé un écran de consentement OAuth et un client idAuth. Je reçois une erreur ci-dessous lorsque j'essaie de me connecter avec Google-
{statusCode = DEVELOPER_ERROR, resolution = null}
Je vérifie une question similaire mais ne trouve pas de solution appropriée. Code
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestProfile().requestId()
.requestEmail().requestScopes(new Scope(Scopes.PLUS_ME))
.requestScopes(new Scope(Scopes.PLUS_LOGIN))
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
googleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleSignInResult(result);
}
}
private void handleSignInResult(GoogleSignInResult result) {
if (result.isSuccess()) {
// Signed in successfully, show authenticated UI.
GoogleSignInAccount acct = result.getSignInAccount();
} else {
// Signed out, show unauthenticated UI.
// updateUI(false);
}
}
@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();
}
@Override
protected void onStop() {
super.onStop();
if(mGoogleApiClient.isConnected())
{
mGoogleApiClient.disconnect();
}
}
@Override
protected void onResume() {
super.onResume();
if(mGoogleApiClient.isConnected())
{
mGoogleApiClient.connect();
}
}
Manifeste
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.GET_ACCOUNTS" />
<!-- To use account credentials -->
<uses-permission Android:name="Android.permission.USE_CREDENTIALS" />
<meta-data
Android:name="com.google.Android.gms.version"
Android:value="@integer/google_play_services_version" />
Il est probable que votre problème réside dans le fait que vous avez choisi SHA1 à partir du ~/.Android/debug.keystore
, mais que vous ne l'utilisez pas pour signer votre construction.
Accédez à l'onglet Options de signature du module et ajoutez un profil avec le seul champ Store File
défini sur /Users/<your_user>/.Android/debug.keystore
.
Dans l'onglet Flavors, sélectionnez-le dans la liste déroulante Signing Config
.
Dans l'onglet Types de construction, sélectionnez-le dans la liste déroulante Signing Config
pour votre type de construction (susceptible d'être Debug
).
Nettoyer et reconstruire.
J'ai le même problème et cette solution a fonctionné. J'espère que cela vous aidera, vous et les autres.
Appliquez le plugin: 'com.Android.application'
Android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
Assurez-vous que cet ID application est identique au nom de votre package dans le fichier manifeste (les majuscules et les minuscules importent)} _
applicationId "com.example"
minSdkVersion 17
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
Si vous travaillez sur deux ordinateurs différents, vous devez générer à nouveau le SHA1 et l'ajouter à console.firebase.google.com, télécharger le fichier google-service.json et ajouter votre projet.
résolu en ajoutant SHA-1 of magasin de clés de débogage dans la console Firebase pour mon application qui se trouve ici C:\Utilisateurs\mon nom.Android lorsque vous créez le magasin de clés pour release changez-le dans la console Firebase
Utilisez .requestIdToken (BACKEND_CLIENT_ID) avec vos options GoogleSignInOptions.
Comment obtenir le BACKEND_CLIENT_ID peut être trouvé ici: https://developers.google.com/identity/sign-in/Android/start-integrating#get_your_backend_servers_oauth_20_client_id
J'espère que cela a aidé!
Merci Aleksey Gureiev pour avoir laissé entendre… J'ai résolu mon problème en m'assurant que les clés de débogage sont réellement utilisées lors des compilations ..
Pour moi dans Android Studio, le problème était que la configuration de la signature n'était pas réglée du tout. Je me demande encore comment cela s'est passé.
Une fois que j'ai défini Signing Config sur ma config avec le nom "debug", tout a commencé à fonctionner.