我的应用程序运行正常。我将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
答案 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库混乱。
如果错误仍然存在,您可能需要使用以下内容添加整个Twitter和Facebook 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服务库都使用相同的版本。