Android Google SignIn getCredentialAsync nicht erkanntJava

Java-Forum
Guest
 Android Google SignIn getCredentialAsync nicht erkannt

Post by Guest »

Im Anschluss an dieses Tutorial habe ich Folgendes implementiert:
In build.gradle (App)

Code: Select all

implementation "androidx.credentials:credentials:1.3.0"
implementation "androidx.credentials:credentials-play-services-auth:1.3.0"
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
In MainActivity.java

Code: Select all

import androidx.core.os.CancellationSignal;
import androidx.credentials.Credential;
import androidx.credentials.CredentialManager;
import androidx.credentials.CredentialManagerCallback;
import androidx.credentials.CustomCredential;
import androidx.credentials.GetCredentialRequest;
import androidx.credentials.GetCredentialResponse;
import androidx.credentials.PasswordCredential;
import androidx.credentials.PublicKeyCredential;
import androidx.credentials.exceptions.GetCredentialException;
import com.google.android.libraries.identity.googleid.GetGoogleIdOption;
import com.google.android.libraries.identity.googleid.GoogleIdTokenCredential;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.security.SecureRandom;
import java.util.Random;

public void startGoogleLogin() {
String serverClientId = "";

SecureRandom secureRandom = new SecureRandom();
byte[] randomBytes = new byte[24]; // 24 bytes = 192 bits
secureRandom.nextBytes(randomBytes);
String nonce = java.util.Base64.getUrlEncoder().withoutPadding().encodeToString(randomBytes);

GetGoogleIdOption googleIdOption = new GetGoogleIdOption.Builder()
.setFilterByAuthorizedAccounts(false)
.setServerClientId(serverClientId)
.setAutoSelectEnabled(true)
.setNonce(nonce)
.build();

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
CredentialManager credentialManager  = CredentialManager.create(this);

Context context = getApplicationContext();
GetCredentialRequest request = new GetCredentialRequest.Builder()
.addCredentialOption(googleIdOption)
.build();
CancellationSignal cancellationSignal = new CancellationSignal();
Executor executor = Executors.newSingleThreadExecutor();
CredentialManagerCallback callback = new CredentialManagerCallback() {
@Override
public void onResult(GetCredentialResponse result) {
Log.v(TAG, "successful get credential: " + result.getCredential().toString());
}

@Override
public void onError(GetCredentialException e) {
Log.v(TAG, "credential get fail: " + e.toString());
}
};

try {
credentialManager.getCredentialAsync(context, request, cancellationSignal, executor, callback);
} catch (GetCredentialException e) {
Log.v(TAG, "credential get fail: " + e.toString());
}
}

}
Ich erhalte die folgende Fehlermeldung
Image

Und die Methodensignatur ist diese
Image

Ich habe keine Ahnung, was ich sonst noch versuchen soll. Die Methode existiert in credentialManager und ich habe für jedes Argument die gleichen Typen
//edit: Es wurde behoben, indem das Argument cancelSignal auf null gesetzt wurde

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post