大佬教程收集整理的这篇文章主要介绍了OTP 的问题。用户输入 OTP 时应用程序崩溃,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试通过电话号码 otp 将我的应用程序附加到 firebase。当我在我的主活动中输入测试编号然后应用程序移动到 OTPActivity 但是当我输入测试 otp 我的应用程序在这里崩溃时我附加了我的 otpactivity 的清单和 java 代码
这是清单的代码。
<?xml version="1.0" enCoding="utf-8"?>
<manifest xmlns:androID="http://scheR_78_11845@as.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>
这里是otpActivity的java代码。
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();
}
}
});
}
});
}
}
这是应用程序的日志
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)
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的OTP 的问题。用户输入 OTP 时应用程序崩溃全部内容,希望文章能够帮你解决OTP 的问题。用户输入 OTP 时应用程序崩溃所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。