Hi, I'm trying to use Facebook login on Android but It shows an error.
JS: Error in firebase.login: Error: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
JS: com.facebook.internal.Validate.sdkInitialized(Validate.java:145)
JS: com.facebook.login.LoginManager.<init>(LoginManager.java:68)
JS: com.facebook.login.LoginManager.getInstance(LoginManager.java:79)
JS: com.tns.Runtime.callJSMethodNative(Native Method)
JS: com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:861)
JS: com.tns.Runtime.callJSMethodImpl(Runtime.java:726)
JS: com.tns.Runtime.callJSMethod(Runtime.java:712)
JS: com.tns.Runtime.callJSMethod(Runtime.java:693)
JS: com.tns.Runtime.callJSMethod(Runtime.java:683)
JS: com.tns.gen.android.view.GestureDetector_SimpleOnGestureListener_frnal_ts_helpers_l55_c38__TapAndDoubleTapGestureListener.onSingleTapUp(android.view.GestureDetector$SimpleOnGestureListener.java)
JS: android.view.GestureDetector.onTouchEvent(GestureDetector.java:595)
JS: android.support.v4.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2.onTouchEvent(GestureDetectorCompat.java:475)
JS: android.support.v4.view.GestureDetectorCompat.onTouchEvent(GestureDetectorCompat.java:538)
JS: com.tns.Runtime.callJSMethodNative(Native Method)
JS: com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:861)
JS: com.tns.Runtime.callJSMethodImpl(Runtime.java:726)
JS: com.tns.Runtime.callJSMethod(Runtime.java:712)
JS: com.tns.Runtime.callJSMethod(Runtime.java:693)
JS: com.tns.Runtime.callJSMethod(Runtime.java:683)
JS: com.tns.gen.android.view.View_OnTouchListener.onTouch(View_OnTouchListener.java:12)
JS: android.view.View.dispatchTouchEvent(View.java:8582)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2482)
JS: com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1798)
JS: android.app.Dialog.dispatchTouchEvent(Dialog.java:778)
JS: com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2443)
JS: android.view.View.dispatchPointerEvent(View.java:8799)
JS: android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4662)
JS: android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4520)
JS: android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4034)
JS: android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4087)
JS: android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4053)
JS: android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4190)
JS: android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4061)
JS: android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4247)
JS: android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4034)
JS: android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4087)
JS: android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4053)
JS: android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4061)
JS: android
JS: .view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4034)
JS: android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6463)
JS: android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6437)
JS: android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6390)
JS: android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6622)
JS: android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
JS: android.os.MessageQueue.nativePollOnce(Native Method)
JS: android.os.MessageQueue.next(MessageQueue.java:148)
JS: android.os.Looper.loop(Looper.java:151)
JS: android.app.ActivityThread.main(ActivityThread.java:5643)
JS: java.lang.reflect.Method.invoke(Native Method)
JS: java.lang.reflect.Method.invoke(Method.java:372)
JS: com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
JS: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
JS: Error: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
JS: com.facebook.internal.Validate.sdkInitialized(Validate.java:145)
JS: com.facebook.login.LoginManager.<init>(LoginManager.java:68)
JS: com.facebook.login.LoginManager.getInstance(LoginManager.java:79)
JS: com.tns.Runtime.callJSMethodNative(Native Method)
JS: com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:861)
JS: com.tns.Runtime.callJSMethodImpl(Runtime.java:726)
JS: com.tns.Runtime.callJSMethod(Runtime.java:712)
JS: com.tns.Runtime.callJSMethod(Runtime.java:693)
JS: com.tns.Runtime.callJSMethod(Runtime.java:683)
JS: com.tns.gen.android.view.GestureDetector_SimpleOnGestureListener_frnal_ts_helpers_l55_c38__TapAndDoubleTapGestureListener.onSingleTapUp(android.view.GestureDetector$SimpleOnGestureListener.java)
JS: android.view.GestureDetector.onTouchEvent(GestureDetector.java:595)
JS: android.support.v4.view.GestureDetectorCompat$GestureDetectorCompatImplJellybeanMr2.onTouchEvent(GestureDetectorCompat.java:475)
JS: android.support.v4.view.GestureDetectorCompat.onTouchEvent(GestureDetectorCompat.java:538)
JS: com.tns.Runtime.callJSMethodNative(Native Method)
JS: com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:861)
JS: com.tns.Runtime.callJSMethodImpl(Runtime.java:726)
JS: com.tns.Runtime.callJSMethod(Runtime.java:712)
JS: com.tns.Runtime.callJSMethod(Runtime.java:693)
JS: com.tns.Runtime.callJSMethod(Runtime.java:683)
JS: com.tns.gen.android.view.View_OnTouchListener.onTouch(View_OnTouchListener.java:12)
JS: android.view.View.dispatchTouchEvent(View.java:8582)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2519)
JS: android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2171)
JS: com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2482)
JS: com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1798)
JS: android.app.Dialog.dispatchTouchEvent(Dialog.java:778)
JS: com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2443)
JS: android.view.View.dispatchPointerEvent(View.java:8799)
JS: android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4662)
JS: android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4520)
JS: android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4034)
JS: android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4087)
JS: android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4053)
JS: android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4190)
JS: android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4061)
JS: android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4247)
JS: android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4034)
JS: android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4087)
JS: android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4053)
JS: android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4061)
JS: android.view.ViewRootImpl$InputS
JS: tage.deliver(ViewRootImpl.java:4034)
JS: android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6463)
JS: android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6437)
JS: android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6390)
JS: android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6622)
JS: android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
JS: android.os.MessageQueue.nativePollOnce(Native Method)
JS: android.os.MessageQueue.next(MessageQueue.java:148)
JS: android.os.Looper.loop(Looper.java:151)
JS: android.app.ActivityThread.main(ActivityThread.java:5643)
JS: java.lang.reflect.Method.invoke(Native Method)
JS: java.lang.reflect.Method.invoke(Method.java:372)
JS: com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
JS: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Any idea? I already did all the files configuration and set up everything in Facebook. The only thing I'm not sure is the Key-hash because it doesn't appear on my log. It just shows this error. Thanks
Are you sure that you have uncommented
compile "com.facebook.android:facebook-android-sdk:4.+"
in node_modules\nativescript-plugin-firebase\platforms\android\include.gradle ?
Also: From where are you calling firebase.login ?
Yes

@t-moe I'm calling it from a tap action in a modal page
@t-moe any idea if it may be that the plugin is not installing? I had that problem installing the cocoa for iOS. For some reason it was not installing the pod (cache or something, I don't know)
@PedroAnibarro1 I'm having similar issues on android: From time to time my changes are just not reflected in the build. Because there's no tns clean I normally delete the platform folder and run tns platform add android afterwards again :disappointed:
@t-moe Yeah that sucks.. But anyway, I already did that and nothings change. Do you think that it's that? That the plugin is not installing?
I'm not sure. It could also be that somehow sdkInitialize is in fact not called in your situation.
Are you sure firebase.init() is called and succeeds before you use firebase.login ?
@t-moe I have to say that I'm getting this error.
JS: Error in firebase.init: Error: java.lang.NullPointerException: Argument 'applicationContext' cannot be null
JS: com.facebook.internal.Validate.notNull(Validate.java:76)
JS: com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:194)
JS: com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:174)
JS: com.tns.Runtime.runModule(Native Method)
JS: com.tns.Runtime.runModule(Runtime.java:241)
JS: com.tns.Runtime.run(Runtime.java:235)
JS: com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
JS: android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1017)
JS: android.app.ActivityThread.handleBindApplication(ActivityThread.java:4864)
JS: android.app.ActivityThread.access$1500(ActivityThread.java:178)
JS: android.app.ActivityThread$H.handleMessage(ActivityThread.java:1531)
JS: android.os.Handler.dispatchMessage(Handler.java:111)
JS: android.os.Looper.loop(Looper.java:194)
JS: android.app.ActivityThread.main(ActivityThread.java:5643)
JS: java.lang.reflect.Method.invoke(Native Method)
JS: java.lang.reflect.Method.invoke(Method.java:372)
JS: com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
JS: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
JS: firebase.init error: Error: java.lang.NullPointerException: Argument 'applicationContext' cannot be null
JS: com.facebook.internal.Validate.notNull(Validate.java:76)
JS: com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:194)
JS: com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:174)
JS: com.tns.Runtime.runModule(Native Method)
JS: com.tns.Runtime.runModule(Runtime.java:241)
JS: com.tns.Runtime.run(Runtime.java:235)
JS: com.tns.NativeScriptApplication.onCreate(NativeScriptApplication.java:17)
JS: android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1017)
JS: android.app.ActivityThread.handleBindApplication(ActivityThread.java:4864)
JS: android.app.ActivityThread.access$1500(ActivityThread.java:178)
JS: android.app.ActivityThread$H.handleMessage(ActivityThread.java:1531)
JS: android.os.Handler.dispatchMessage(Handler.java:111)
JS: android.os.Looper.loop(Looper.java:194)
JS: android.app.ActivityThread.main(ActivityThread.java:5643)
JS: java.lang.reflect.Method.invoke(Native Method)
JS: java.lang.reflect.Method.invoke(Method.java:372)
JS: com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
JS: com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
D/AccessibilityManager(20738): at com.tns.Runtime.callJSMethodNative(Native Method)
D/AccessibilityManager(20738): at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:861)
D/AccessibilityManager(20738): at com.tns.Runtime.callJSMethodImpl(Runtime.java:726)
D/AccessibilityManager(20738): at com.tns.Runtime.callJSMethod(Runtime.java:712)
D/AccessibilityManager(20738): at com.tns.Runtime.callJSMethod(Runtime.java:693)
D/AccessibilityManager(20738): at com.tns.Runtime.callJSMethod(Runtime.java:683)
But I was kind of ignoring it because I have read that that error shows and the initialization was done because they can use the service.
In my case, I'm using the database feature, no problems with that, and I'm having no trouble using auth with email. The problem is when I call login with Facebook. Again, is working for iOS. The problem is Android.
Ok. That error has definitely something to do with your problem :).
I think you're probably calling firebase.init to early. Where do you call it from?
@t-moe I'm calling it in my main.ts
// this import should be first in order to load some required settings (like globals and reflect-metadata)
import {nativeScriptBootstrap} from "nativescript-angular/application";
import {AppComponent} from "./app.component";
import "reflect-metadata";
import {HTTP_PROVIDERS} from "@angular/http";
import firebase = require("nativescript-plugin-firebase");
import {APP_ROUTER_PROVIDERS} from "./app.routes";
import {VaultService} from "./services/vault/vault.service";
import {MenuService} from "./services/menu/menu.service";
firebase.init({
// Optionally pass in properties for database, authentication and cloud messaging,
// see their respective docs.
// storageBucket: 'gs://al-grano.appspot.com'
onAuthStateChanged: function(data) { // optional but useful to immediately re-logon the user when he re-visits your app
console.log(data.loggedIn ? "Logged in to firebase" : "Logged out from firebase");
if (data.loggedIn) {
console.log("user's email address: " + (data.user.email ? data.user.email : "N/A"));
}
}
}).then(
(instance) => {
console.log("firebase.init done");
},
(error) => {
console.log("firebase.init error: " + error);
}
);
nativeScriptBootstrap(AppComponent, [HTTP_PROVIDERS, APP_ROUTER_PROVIDERS, VaultService, MenuService]);
Yeah, it has to be that. I check on iOS and the error is not showing.
In Android, is actually appearing several times.
Try to move it to another location. Maybe the AppComponent Constructor will work.
Otherwise ngOnInit of your AppComponent.
@t-moe LOOOOOL it worked...... Thanks a lot!!!!!! Really thanks.
If it helps for anyone, I moved the firebase.init to ngOnInit() on my AppComponent.
@PedroAnibarro1 Allright. Thanks for the feedback.
@EddyVerbruggen We should think about delaying FbSdkInit somehow or add a note about where to place firebase.init.
@t-moe @PedroAnibarro1 I just fixed this for #99, thanks!
Most helpful comment
@PedroAnibarro1 Allright. Thanks for the feedback.
@EddyVerbruggen We should think about delaying FbSdkInit somehow or add a note about where to place
firebase.init.