升级后,Android应用程序在AuthUI.getInstance()上崩溃

时间:2017-11-04 05:30:03

标签: android firebase-authentication firebaseui android-studio-3.0

我的应用程序运行正常。我将Android Studio升级到3.0,并将库升级如下。

compile 'com.google.firebase:firebase-core:11.4.2'
compile 'com.firebaseui:firebase-ui-auth:3.1.0'

但是现在应用程序开始崩溃了。无法找到问题。

 startActivityForResult(
                        AuthUI.getInstance()
                                .createSignInIntentBuilder()
                                //          .setTheme(R.style.GreenTheme)
                                .setAvailableProviders(Arrays.asList(
                                        new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(),
                                        new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build()
                                ))
                                .setIsSmartLockEnabled(false)
                                .setLogo(R.drawable.web_hi_res_178)
                                .build(),
                        RC_SIGN_IN);

Logcat -

 No pending exception expected: java.lang.NoClassDefFoundError: com.firebase.ui.auth.provider.TwitterProvider
   at java.lang.Class dalvik.system.DexFile.defineClassNative(java.lang.String, java.lang.ClassLoader, java.lang.Object) (DexFile.java:-2)
   at java.lang.Class dalvik.system.DexFile.defineClass(java.lang.String, java.lang.ClassLoader, java.lang.Object, java.util.List) (DexFile.java:226)
   at java.lang.Class dalvik.system.DexFile.loadClassBinaryName(java.lang.String, java.lang.ClassLoader, java.util.List) (DexFile.java:219)
   at java.lang.Class dalvik.system.DexPathList.findClass(java.lang.String, java.util.List) (DexPathList.java:338)
   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:54)
   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:511)
   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:469)
   at com.firebase.ui.auth.AuthUI com.firebase.ui.auth.AuthUI.getInstance() (AuthUI.java:160)
   at void com.xxxxxxx.xxxxxxx.LandingPage.onCreate(android.os.Bundle) (LandingPage.java:82)
   at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6904)
   at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1136)
   at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:3266)
   at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:3415)
   at void android.app.ActivityThread.access$1100(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:229)
   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1821)
   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
   at void android.os.Looper.loop() (Looper.java:148)
   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7325)
   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:1230)
   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1120)

 Runtime aborting...

 Fatal signal 6 (SIGABRT), code -6 in tid 23572 

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,在解决Twitter错误之后,一个与Facebook有关的问题出现了! 请在您的应用级build.gradle文件中添加以下依赖项:

dependencies {
compile 'com.twitter.sdk.android:twitter-core:3.1.1'
compile 'com.facebook.android:facebook-login:4.28.0'
}

应该这样做!

PS: 我为每个使用了确切的模块,以避免不必要的DEX库混乱。

如果错误仍然存​​在,您可能需要使用以下内容添加整个TwitterFacebook SDK。

// Facebook Android SDK (everything)
compile 'com.facebook.android:facebook-android-sdk:4.28.0'
// Include all the Twitter APIs
compile 'com.twitter.sdk.android:twitter:3.1.1'

答案 1 :(得分:0)

确保您的firebase-core库与Google Play服务版本相同。

例如,

compile 'com.google.android.gms:play-services-auth:11.0.4'
compile 'com.google.firebase:firebase-messaging:11.0.4'

firebase和google服务库都使用相同的版本。