【发布时间】:2018-04-28 22:19:26
【问题描述】:
我正在我的应用中实施 Firebase Google 和电话身份验证。 使用 Google 登录工作正常。但是电话认证给了
错误:NoSuchMethodError:android.support.v4.app.FragmentManager.isStateSaved
我在 Android 中使用 Firebase 和 Firebase-UI
这就是APP级构建Gradle文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.dev_man_team.fiverr.predictnwin"
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:cardview-v7:26.1.0'
compile 'com.google.firebase:firebase-database:11.6.0'
compile 'com.google.firebase:firebase-storage:11.6.0'
compile 'com.google.firebase:firebase-auth:11.6.0'
compile 'com.google.android.gms:play-services:11.6.0'
compile 'com.firebaseui:firebase-ui-database:3.1.0'
compile 'com.firebaseui:firebase-ui-auth:3.1.0'
compile 'com.firebaseui:firebase-ui-storage:3.1.0'
}
apply plugin: 'com.google.gms.google-services'
这就是代码
private FirebaseAuth auth;
private static final int RC_SIGN_IN = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup_login);
auth = FirebaseAuth.getInstance();
if(auth.getCurrentUser() != null){
Toast.makeText(getApplicationContext(), "User is Already Signed in", Toast.LENGTH_LONG).show();
}
else{
signUp();
}
}
private void signUp() {
List<AuthUI.IdpConfig> providers = new ArrayList<>();
providers.add(new AuthUI.IdpConfig.Builder(AuthUI.PHONE_VERIFICATION_PROVIDER).build());
providers.add(new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build());
startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().setAvailableProviders(providers).build(), RC_SIGN_IN);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RC_SIGN_IN){
IdpResponse response = IdpResponse.fromResultIntent(data);
if(resultCode == RESULT_OK){
startActivity(new Intent(this, MainActivity.class));
finish();
Toast.makeText(getApplicationContext(), "User Signed in", Toast.LENGTH_LONG).show();
}
}
}
这就是我收到的错误
11-15 20:48:12.509 9712-9712/com.dev_man_team.fiverr.predictnwin E/UncaughtException: java.lang.NoSuchMethodError: android.support.v4.app.FragmentManager.isStateSaved 在 com.firebase.ui.auth.ui.phone.CompletableProgressDialog.showAllowingStateLoss(CompletableProgressDialog.java:51) 在 com.firebase.ui.auth.ui.phone.CompletableProgressDialog.show(CompletableProgressDialog.java:41) 在 com.firebase.ui.auth.ui.phone.PhoneVerificationActivity.showLoadingDialog(PhoneVerificationActivity.java:390) 在 com.firebase.ui.auth.ui.phone.PhoneVerificationActivity.verifyPhoneNumber(PhoneVerificationActivity.java:157) 在 com.firebase.ui.auth.ui.phone.VerifyPhoneNumberFragment.onNext(VerifyPhoneNumberFragment.java:200) 在 com.firebase.ui.auth.ui.phone.VerifyPhoneNumberFragment.onActivityResult(VerifyPhoneNumberFragment.java:184) 在 android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:164) 在 android.app.Activity.dispatchActivityResult(Activity.java:5387) 在 android.app.ActivityThread.deliverResults(ActivityThread.java:3205) 在 android.app.ActivityThread.handleSendResult(ActivityThread.java:3252) 在 android.app.ActivityThread.access$1200(ActivityThread.java:143) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:4960) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 在 dalvik.system.NativeStart.main(本机方法) 11-15 20:48:12.769 9712-9712/com.dev_man_team.fiverr.predictnwin E/AndroidRuntime: 致命异常: main java.lang.NoSuchMethodError: android.support.v4.app.FragmentManager.isStateSaved 在 com.firebase.ui.auth.ui.phone.CompletableProgressDialog.showAllowingStateLoss(CompletableProgressDialog.java:51) 在 com.firebase.ui.auth.ui.phone.CompletableProgressDialog.show(CompletableProgressDialog.java:41) 在 com.firebase.ui.auth.ui.phone.PhoneVerificationActivity.showLoadingDialog(PhoneVerificationActivity.java:390) 在 com.firebase.ui.auth.ui.phone.PhoneVerificationActivity.verifyPhoneNumber(PhoneVerificationActivity.java:157) 在 com.firebase.ui.auth.ui.phone.VerifyPhoneNumberFragment.onNext(VerifyPhoneNumberFragment.java:200) 在 com.firebase.ui.auth.ui.phone.VerifyPhoneNumberFragment.onActivityResult(VerifyPhoneNumberFragment.java:184) 在 android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:164) 在 android.app.Activity.dispatchActivityResult(Activity.java:5387) 在 android.app.ActivityThread.deliverResults(ActivityThread.java:3205) 在 android.app.ActivityThread.handleSendResult(ActivityThread.java:3252) 在 android.app.ActivityThread.access$1200(ActivityThread.java:143) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:4960) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:511) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 在 dalvik.system.NativeStart.main(Native Method)
提前感谢您纠正我的错误。 我会感谢你的帮助。
【问题讨论】:
标签: android firebase firebase-authentication firebaseui