2017-11-06 2 views
0

Nach der Implementierung Facebook Account Kit und Lauf Projekt zeigt es Firebase API-Initialisierungsfehler alsFacebook accout Kit Firebase API-Initialisierungsfehler

FirebaseApp: Firebase API initialization failure. 
java.lang.reflect.InvocationTargetException 
at java.lang.reflect.Method.invoke(Native Method) 
at com.google.firebase.FirebaseApp.zza(Unknown Source) 
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
at android.content.ContentProvider.attachInfo(ContentProvider.java:1758) 
at android.content.ContentProvider.attachInfo(ContentProvider.java:1733) 
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
at android.app.ActivityThread.installProvider(ActivityThread.java:5257) 
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4808) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4748) 
at android.app.ActivityThread.access$1700(ActivityThread.java:153) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1436) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:5529) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 

Und auch Null-Zeiger-Ausnahme von AccountKitController als

bekommen
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference 
at com.facebook.accountkit.internal.Initializer.initialize(Initializer.java:101) 
at com.facebook.accountkit.internal.AccountKitController.initialize(AccountKitController.java:601) 
at com.facebook.accountkit.internal.AccountKitInitProvider.onCreate(AccountKitInitProvider.java:31) 
at android.content.ContentProvider.attachInfo(ContentProvider.java:1758) 
at android.content.ContentProvider.attachInfo(ContentProvider.java:1733) 
at android.app.ActivityThread.installProvider(ActivityThread.java:5257) 
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4808) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4748) 
at android.app.ActivityThread.access$1700(ActivityThread.java:153) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1436) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:5529) 
at java.lang.reflect.Method.invoke(Native Method) 

Verwendung von Accoun t-Kit gradle als

compile 'com.facebook.android:account-kit-sdk:4.27.0' 

Und Firebase Gradle als

compile 'com.google.firebase:firebase-messaging:11.0.4' 

Hinweis: Entfernen Konto Kit von seinem Projekt adaequat das heißt, es gibt keine Firebase API-Initialisierungsfehler. Problem. Daher ist es sicher, dass es einen Konflikt in Firebase und Account Kit SDK gibt (:

Antwort

0

Für NullPointe rException Ausnahme scheint es, dass Anwendung nicht zuerst initialisiert wird Inhaltsanbieter werden vor ihm initialisiert. Und im Code-SDK-Code von Facebook Account versuchte es, meinen Anwendungskontext zu bekommen.

Jetzt war das Problem, ich habe Methode getApplicationContext() in der Anwendungsklasse, die Anwendung freigegebene Variable, aber diese Variable wurde global und Facebook Account Kit SDK-Code erhalten Null Anwendungskontext implementieren.

Lösung: Einstellung der freigegebenen Variablen in OnCreate-Methode anstelle der globalen Einstellung löste das Problem Kann Provider nicht erhalten.

Und für Ausgabe Mischen, SDK Konto Kit 11.0.1 Version für gradle Play-Dienste nutzen und in meinem Projekt Ich habe 11.0.4, dass da auf der Kompilierung eigentlich nicht das Problem gradle neueste nimmt Gradle, aber in meinem Projekt verweise ich nicht unter Gradle, die Facebook Account Kit SDK verwendet.

compile 'com.google.android.gms:play-services-auth-api-phone:11.0.1' 

Lösung: Ich habe oben gradle mit Version behoben 11.0.4 und der Misch gradle Problem wurde hinzugefügt.

compile 'com.google.android.gms:play-services-auth-api-phone:11.0.4' 

Und als suggested by @astryk wenn ich play-services-auth-api-phone Modul dann gradle Mischfehler auszuschließen zeigt nicht, aber es ist nicht darunter das Modul becasue in AccountKitActivity auf der nächsten Schaltfläche meine Anwendung abstürzt klicken als

Crash Report Thread:main Exception:java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/auth/api/phone/SmsRetriever; 
at com.facebook.accountkit.internal.PhoneLoginController.createSmsToken(PhoneLoginController.java:250) 
at com.facebook.accountkit.internal.PhoneLoginController.logIn(PhoneLoginController.java:188) 
at com.facebook.accountkit.internal.LoginManager.logInWithPhoneNumber(LoginManager.java:372) 
at com.facebook.accountkit.internal.AccountKitController.logInWithPhoneNumber(AccountKitController.java:631) 
at com.facebook.accountkit.ui.PhoneLoginFlowManager.logInWithPhoneNumber(PhoneLoginFlowManager.java:57) 
at com.facebook.accountkit.ui.ActivityPhoneHandler.onPhoneLoginComplete(ActivityPhoneHandler.java:189) 
at com.facebook.accountkit.ui.AccountKitActivity$1.onReceive(AccountKitActivity.java:176) 
at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297) 
at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46) 
at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:5529) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.auth.api.phone.SmsRetriever" on path: DexPathList[[zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myappList item -1/lib/arm64, /vendor/lib64, /system/lib64]] 
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
... 16 more 
Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.auth.api.phone.SmsRetriever 
at java.lang.Class.classForName(Native Method) 
at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
... 17 more 
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available` 
0

) Dies wird dadurch verursacht, dass das Facebook SDK mit einer anderen Version der GMS-Bibliothek gepackt ist als das, was mit Firebase geliefert wird zurück und läuft:

compile ('com.facebook.android:account-kit-sdk:4.27.0') { 
     exclude group: 'com.google.android.gms', module: 'play-services-auth-api-phone' 
     exclude group: 'com.google.android.gms', module: 'play-services-auth' 
    } 
    compile 'com.google.android.gms:play-services-auth:11.6.0' 
    compile 'com.google.firebase:firebase-messaging:11.6.0' 

Was das bedeutet ist im wesentlichen Hot-Swaps aus der älteren Bibliothek für die neuere Version mit Firebase verpackt Es Facebook ohne die alten Bibliotheken zu kompilieren erzählt und dann stellen wir sicher, dass sie wieder hinzugefügt werden. mit neueren Version direkt nach.

+0

nach Umsetzung Ihr Lösungsproblem wurde behoben, aber es stürzt bei der AccountKit-Aktivität ab. Bitte sehen Sie meine Antwort. –