为什么 Android Studio 无法识别 googleId 的依赖关系

问题描述 投票:0回答:1

我正在尝试构建一个使用 Google 登录的应用程序,但我遇到了

GoogleIdTokenCredential
GoogleIdTokenParsingException
GetGoogleIdOption
的未解决的引用错误 在这段代码中:

coroutineScope.launch {
                try {
                    // Call to get credentials
                    val result = credentialManager.getCredential(context, request)
                    val credential = result.credential
                    val googleIdTokenCredential = GoogleIdTokenCredential.createFrom(credential.data)
                    val googleIdToken = googleIdTokenCredential.idToken

                    // Pass the token to the ViewModel
                    loginViewModel.registerUserWithGoogleId(username, password, googleIdToken)

                } catch (e: GetCredentialException) {
                    Toast.makeText(context, e.message, Toast.LENGTH_SHORT).show()
                } catch (e: GoogleIdTokenParsingException) {
                    Toast.makeText(context, e.message, Toast.LENGTH_SHORT).show()
                }
            }

还有这个代码

@Provides
    @Singleton // Ensure a single instance is used throughout the app
    fun provideGoogleIdOption(): GetGoogleIdOption {
        val rawNonce = UUID.randomUUID().toString()
        val bytes = rawNonce.toByteArray()
        val md = MessageDigest.getInstance("SHA-256")
        val digest = md.digest(bytes)
        val hashedNonce = digest.fold("") { str, it -> str + "%02x".format(it) }

        return GetGoogleIdOption.Builder()
            .setFilterByAuthorizedAccounts(false)
            .setServerClientId("MY_CODE")
            .setNonce(hashedNonce)
            .build()
    }

Android 为我提供了添加依赖项和导入的选项,如我添加的图片所示。

enter image description here

但是如果我坚持这个建议,什么也不会发生。如果我尝试手动添加从 Android 开发人员页面复制粘贴的依赖项(https://developer.android.com/identity/sign-in/credential-manager-siwg),我会收到此错误当我构建我的项目时

Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugRuntimeClasspath'.

这些是我在代码中复制的依赖项

    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.3.0")

我已使缓存无效并重新启动并清理了项目,但我仍然遇到相同的错误。 那么我必须做什么才能使文档中的依赖项起作用才能允许我的用户使用 Google 登录?

kotlin android-studio android-jetpack-compose google-identity
1个回答
0
投票

使用正确的 googleid 库版本,即 1.1.1

implementation("com.google.android.libraries.identity.googleid:googleid:1.1.0")
© www.soinside.com 2019 - 2024. All rights reserved.