Issue with OTP. App crash when user enter the OTP

Viewed 115

I am trying to attach my application with firebase via Phone number otp. When i enter testing number in my main Activity then app move to OTPActivity but when i enter the testing otp my application crash here i am attaching the manifest and java code of my otpactivity

here is the code of manifest.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.heybuddy">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:usesCleartextTraffic="true"
    android:supportsRtl="true"
    android:theme="@style/Theme.HeyBuddy">
    <activity android:name=".OtpActivity"></activity>
    <activity android:name=".SignupActivity" />
    <activity android:name=".SigninActivity" />
    <activity android:name=".SplashScreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

here is the java code of otpActivity.

package com.example.heybuddy;
public class OtpActivity extends AppCompatActivity {
TextView textView;
FirebaseAuth auth;
String verification;
OtpView otpView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_otp);
    textView = findViewById(R.id.numberLbl);
    otpView = findViewById(R.id.otp_view);
    Intent intent = getIntent();
    String number = intent.getStringExtra("phoneNumber");
    textView.setText("Please verify " + number);

    auth = FirebaseAuth.getInstance();

    PhoneAuthOptions options = PhoneAuthOptions.newBuilder(auth)
            .setPhoneNumber(number)
            .setTimeout(60L, TimeUnit.SECONDS)
            .setActivity(OtpActivity.this)
            .setCallbacks(new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
                @Override
                public void onVerificationCompleted(@NonNull PhoneAuthCredential phoneAuthCredential) {

                }

                @Override
                public void onVerificationFailed(@NonNull FirebaseException e) {

                }

                @Override
                public void onCodeSent(@NonNull String verifyId, @NonNull PhoneAuthProvider.ForceResendingToken forceResendingToken) {
                    super.onCodeSent(verifyId, forceResendingToken);
                    verification = verifyId;
                }
            }).build();
    PhoneAuthProvider.verifyPhoneNumber(options);
    otpView.setOtpCompletionListener(new OnOtpCompletionListener() {
        @Override
        public void onOtpCompleted(String otp) {
            PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verification, otp);

            auth.signInWithCredential(credential).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()){
                        Toast.makeText(OtpActivity.this, "Verified Successfully.", Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(OtpActivity.this, "Failed.", Toast.LENGTH_SHORT).show();
                    }
                }
            });
        }
    });

}

}

here is the logcat of application

com.google.android.gms.common.internal.Preconditions.checkArgument(com.google.android.gms:play-services-basement@@17.1.0:35)
    at com.google.firebase.auth.PhoneAuthCredential.<init>(com.google.firebase:firebase-auth@@20.0.4:6)
    at com.google.firebase.auth.PhoneAuthCredential.zzb(com.google.firebase:firebase-auth@@20.0.4:1)
    at com.google.firebase.auth.PhoneAuthProvider.getCredential(com.google.firebase:firebase-auth@@20.0.4:1)
    at com.example.heybuddy.OtpActivity$2.onOtpCompleted(OtpActivity.java:67)
    at com.mukesh.OtpView.onTextChanged(OtpView.java:227)
    at android.widget.TextView.handleTextChanged(TextView.java:10626)
    at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:13375)
    at android.text.SpannableStringBuilder.sendTextChanged(SpannableStringBuilder.java:1267)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:576)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:507)
    at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:37)
    at android.text.method.NumberKeyListener.onKeyDown(NumberKeyListener.java:131)
    at android.widget.TextView.doKeyDown(TextView.java:8430)
    at android.widget.TextView.onKeyDown(TextView.java:8187)
    at android.view.KeyEvent.dispatch(KeyEvent.java:2801)
    at android.view.View.dispatchKeyEvent(View.java:13352)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1922)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1922)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1922)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1922)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1922)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1922)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1922)
    at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1922)
    at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:453)
    at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1839)
    at android.app.Activity.dispatchKeyEvent(Activity.java:3953)
    at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.java:122)
    at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:84)
    at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.java:140)
    at androidx.appcompat.app.AppCompatActivity.dispatchKeyEvent(AppCompatActivity.java:569)
    at androidx.appcompat.view.WindowCallbackWrapper.dispatchKeyEvent(WindowCallbackWrapper.java:59)
    at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.dispatchKeyEvent(AppCompatDelegateImpl.java:3054)
    at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:367)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:5413)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5281)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4788)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4841)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4807)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4947)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4815)
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5004)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4788)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4841)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4807)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4815)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4788)
2021-04-14 02:38:38.418 14174-14174/com.example.heybuddy E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4841)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4807)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4980)
    at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:5141)
    at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3064)
    at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2607)
    at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2598)
    at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3041)
    at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:143)
    at android.os.MessageQueue.nativePollOnce(Native Method)
    at android.os.MessageQueue.next(MessageQueue.java:336)
    at android.os.Looper.loop(Looper.java:174)
    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)
0 Answers
Related