4
votes

Aucune méthode virtuelle verifyPhoneNumber, FATAL EXCEPTION: main

Après avoir mis à jour les bibliothèques dans le fichier Gradle, je rencontre cette erreur après avoir essayé de m'authentifier via le numéro de téléphone.

// 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'

/////////////////////////////////////////////////////////////////////////////

J'ai cherché une solution mais le même problème

J'ai ces bibliothèques pour la base de feu dans le 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)

Et le code SHA-1 est le même. Quelqu'un peut-il aider, s'il vous plaît?


0 commentaires

4 Réponses :


4
votes

J'ai réussi à résoudre en rétrogradant l'authentification de la base de données et l'authentification de la base de données vers:

// 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'
//////////////////////////////////////////////////////////////////////

puis j'ai supprimé:

// Firebase
implementation platform('com.google.firebase:firebase-bom:26.0.0')

Ainsi, le gradle ressemble maintenant à:

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

D'une manière ou d'une autre, les performances de Firebase sont en conflit avec l'authentification Firebase. Tout fonctionne maintenant comme il se doit


3 commentaires

Lorsque vous spécifiez la version d'une dépendance Firebase, elle remplace la version BoM. Il n'est donc pas nécessaire de spécifier tous les autres modules ok.


Merci beaucoup. J'ai perdu une journée entière à essayer de résoudre ce problème.


Regardez la réponse @DevAndroid, c'est le meilleur moyen de résoudre ce problème.



3
votes

Aujourd'hui, j'ai eu le même problème lorsque j'ai utilisé la dernière version de Firebase Auth -'com.google.firebase: firebase-auth: 20.0.0 '. Ensuite, je l'ai changé pour la version de travail précédente ('com.google.firebase: firebase-auth: 19.4.0') et il a recommencé à fonctionner. J'espère que c'est ce que vous recherchez


0 commentaires

3
votes
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'
this is the real correction ;)

0 commentaires

0
votes

il vous suffit de mettre à jour firebaseUI vers la dernière version

implementation 'com.firebaseui:firebase-ui-auth:7.1.0' //or higher

cela signifie que si vous utilisez la dernière firebase, vous devez utiliser la dernière firebaseUI comme mentionné ici https://github.com/firebase/FirebaseUI-Android/issues/1868


0 commentaires