0

我的应用工作正常。我将Android Studio升级到了3.0以及下面的库。升级后Android应用在AuthUI.getInstance()上崩溃

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 

回答

0

我有同样的问题,解决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' 
0

确保你的火力核心库是一样的,即你的谷歌播放服务版本。

例如,

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

两个火力点和Google服务库中使用相同的版本。

+0

我试图用相同的版本明确加入谷歌服务库。仍然没有运气。 – Rajesh