没有虚拟方法 verifyPhoneNumber,致命异常:main

Erj*_*jon 12 java gradle firebase firebase-authentication

将库更新到 Gradle 文件后,我在尝试通过电话号码进行身份验证后遇到此错误。

--------- beginning of crash
2020-11-04 00:33:11.574 23042-23042/com.roko.hearth E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.roko.hearth, PID: 23042
java.lang.NoSuchMethodError: No virtual method verifyPhoneNumber(Ljava/lang/String;JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/Executor;Lcom/google/firebase/auth/PhoneAuthProvider$OnVerificationStateChangedCallbacks;Lcom/google/firebase/auth/PhoneAuthProvider$ForceResendingToken;)V in class Lcom/google/firebase/auth/PhoneAuthProvider; or its super classes (declaration of 'com.google.firebase.auth.PhoneAuthProvider' appears in /data/app/com.roko.hearth-BB3VSAScHPWVlEGN0MD3dw==/base.apk!classes2.dex)
    at com.firebase.ui.auth.ui.phone.PhoneNumberVerificationHandler.verifyPhoneNumber(PhoneNumberVerificationHandler.java:32)
    at com.firebase.ui.auth.ui.phone.CheckPhoneNumberFragment.onNext(CheckPhoneNumberFragment.java:164)
    at com.firebase.ui.auth.ui.phone.CheckPhoneNumberFragment.onClick(CheckPhoneNumberFragment.java:140)
    at android.view.View.performClick(View.java:7140)
    at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992)
    at android.view.View.performClickInternal(View.java:7117)
    at android.view.View.access$3500(View.java:801)
    at android.view.View$PerformClick.run(View.java:27351)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Run Code Online (Sandbox Code Playgroud)

我搜索了一个解决方案,但同样的问题

我将这些用于 Firebase 的库放入 Gradle

// Firebase
implementation platform('com.google.firebase:firebase-bom:26.0.0')
//Firebase Authentication
implementation 'com.google.firebase:firebase-auth'
implementation 'com.firebaseui:firebase-ui-auth:6.2.1'

//Firebase Database
implementation 'com.google.firebase:firebase-database'
implementation 'com.firebaseui:firebase-ui-database:6.2.1'

//Firebase Messaging
implementation 'com.google.firebase:firebase-messaging'

//Firebase Storage
implementation 'com.google.firebase:firebase-storage'

implementation 'com.google.firebase:firebase-perf'

implementation 'com.google.firebase:firebase-core'

/////////////////////////////////////////////////////////////////////////////
Run Code Online (Sandbox Code Playgroud)

并且 SHA-1 代码是相同的。有人可以帮忙吗?

Dev*_*oid 8

implementation platform('com.google.firebase:firebase-bom:26.1.0')
    implementation 'com.google.firebase:firebase-auth'
    implementation 'com.firebaseui:firebase-ui-auth:7.0.0'
Run Code Online (Sandbox Code Playgroud)

这是真正的修正;)


Oma*_*mar 7

您只需要将 firebaseUI 更新到最新版本

implementation 'com.firebaseui:firebase-ui-auth:7.1.0' //or higher
Run Code Online (Sandbox Code Playgroud)

这意味着如果您使用最新的 firebase,则需要使用此处提到的最新 firebaseUI https://github.com/firebase/FirebaseUI-Android/issues/1868


Erj*_*jon 4

我设法通过将 firebase auth 和 firebase auth-ui 降级来解决:

implementation 'com.google.firebase:firebase-auth:19.3.1'
implementation 'com.firebaseui:firebase-ui-auth:6.2.0'
Run Code Online (Sandbox Code Playgroud)

然后我删除了:

// Firebase
implementation platform('com.google.firebase:firebase-bom:26.0.0')
Run Code Online (Sandbox Code Playgroud)

所以 gradle 现在看起来像:

// Firebase
//Firebase Authentication
implementation 'com.google.firebase:firebase-auth:19.3.1'
implementation 'com.firebaseui:firebase-ui-auth:6.2.0'

//Firebase Database
implementation 'com.google.firebase:firebase-database:19.5.1'
// FirebaseUI for Firebase Realtime Database
implementation 'com.firebaseui:firebase-ui-database:6.4.0'

//Firebase Messaging
implementation 'com.google.firebase:firebase-messaging:21.0.0'

//Firebase Storage
implementation 'com.google.firebase:firebase-storage:19.2.0'

implementation 'com.google.firebase:firebase-perf:19.0.9'

implementation 'com.google.firebase:firebase-analytics:18.0.0'
//////////////////////////////////////////////////////////////////////
Run Code Online (Sandbox Code Playgroud)

不知何故,Firebase 性能与 Firebase 身份验证发生冲突。现在一切都正常