android - 在 Firebase 上进行电话身份验证时出错
问题描述
在 firebase 上进行电话号码身份验证时,我遇到了此错误消息而崩溃。请帮忙。
com.russvkm.chathut 是我的包名
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.russvkm.chathut, PID: 24323
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/browser/customtabs/CustomTabsIntent$Builder;
at com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-auth@@20.0.0:92)
at com.google.firebase.auth.api.internal.zzeq.zza(com.google.firebase:firebase-auth@@20.0.0:79)
at com.google.firebase.auth.api.internal.zzeq.onPostExecute(com.google.firebase:firebase-auth@@20.0.0:88)
at android.os.AsyncTask.finish(AsyncTask.java:695)
at android.os.AsyncTask.access$600(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6826)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.browser.customtabs.CustomTabsIntent$Builder" on path: DexPathList[[zip file "/data/app/com.russvkm.chathut-22XI8m2uPLL7Q6CgxXHPiw==/base.apk"],nativeLibraryDirectories=[/data/app/com.russvkm.chathut-22XI8m2uPLL7Q6CgxXHPiw==/lib/arm, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-auth@@20.0.0:92)
at com.google.firebase.auth.api.internal.zzeq.zza(com.google.firebase:firebase-auth@@20.0.0:79)
at com.google.firebase.auth.api.internal.zzeq.onPostExecute(com.google.firebase:firebase-auth@@20.0.0:88)
at android.os.AsyncTask.finish(AsyncTask.java:695)
at android.os.AsyncTask.access$600(AsyncTask.java:180)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6826)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
I/Process: Sending signal. PID: 24323 SIG: 9
我的应用程序与 firebase 服务器通信良好,因为我在进行电子邮件身份验证时没有发现任何错误或崩溃。
我正在使用以下方法进行身份验证
PhoneAuthProvider.verifyPhoneNumber(
PhoneAuthOptions.newBuilder(mAuth)
.setPhoneNumber(phoneNumber)
.setActivity(this)
.setTimeout(60,TimeUnit.SECONDS)
.setCallbacks(object:PhoneAuthProvider.OnVerificationStateChangedCallbacks(){
override fun onVerificationCompleted(credential:PhoneAuthCredential) {
dismissDialog()
val smsCode=credential.smsCode
Log.i("SMS code",smsCode!!)
signInWithPhoneAuthCredential(credential)
}
override fun onVerificationFailed(p0: FirebaseException) {
Toast.makeText(this@Register,p0.message,Toast.LENGTH_SHORT).show()
}
override fun onCodeSent(verificationId: String, token: PhoneAuthProvider.ForceResendingToken) {
super.onCodeSent(verificationId, token)
numberLinearLayout.visibility=View.GONE
otpLinearLayout.visibility=View.VISIBLE
storedVerificationId=verificationId
resendToken=token
dismissDialog()
}
})
.build()
)
程序没有执行 otpSent 方法,它在没有发送 otp 的情况下崩溃。
解决方案
推荐阅读
- python-3.x - Python & SQLite:遍历行只选择第一行
- php - 如何让 PHP 包含数据 URI(不打开 allow_url_include)?
- python-3.x - 测试 spark 数据框列是否包含 5 位数字
- python - 创建 Keras 函数
- keycloak - 如何从 3rd 方 IdP 自定义 Keycloak(代理)OpenID 连接端点回调?
- r - 从 R 数据框列中选择值
- c++ - (UE4) UposeableMeshComponent的骨骼变形后如何正确渲染
- dataframe - 如何在 python 中使用雪花连接创建 Spark 数据框?
- html - HTML/CSS 如何将图像/图标与文本放在一起?
- python - 使用 matplotlib 和 seaborn 创建圆形密度图