-1

i have some problem getting facebook login to work. App keeps crashing in emulator. following a guide on firebase/facebook https://firebase.google.com/docs/auth/android/facebook-login?authuser=0 and https://developers.facebook.com/docs/facebook-login/android

it says that i should use implementation 'com.facebook.android:facebook-android-sdk:[5,6)' but i get errors when i try so i tried implementation 'com.facebook.android:facebook-android-sdk:5.0.0' that seems to be working better. The error is that

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.google.firebase:firebase-auth:16.2.1'
implementation 'com.facebook.android:facebook-android-sdk:[5,6)'
//implementation 'com.facebook.android:facebook-android-sdk:5.0.0'
testImplementation 'junit:junit:4.13-beta-2'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

uses different versions dunno how to know what to use...

also get another error when doing logcat.

something of this makes the app crash i think :P

2019-05-07 15:02:39.388 5166-5166/com.example.firebasefb E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.firebasefb, PID: 5166
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.firebasefb/com.example.firebasefb.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.login.widget.LoginButton.setReadPermissions(java.lang.String[])' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.login.widget.LoginButton.setReadPermissions(java.lang.String[])' on a null object reference
        at com.example.firebasefb.MainActivity.onCreate(MainActivity.java:34)
        at android.app.Activity.performCreate(Activity.java:7136)
        at android.app.Activity.performCreate(Activity.java:7127)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6669) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
2019-05-07 15:02:39.407 5166-5166/com.example.firebasefb I/Process: Sending signal. PID: 5166 SIG: 9

loginButton.setReadPermissions("email", "public_profile"); seems to make some issue

and also gets

Note: /Users/simonnilsson/AndroidStudioProjects/firebasefb/app/src/main/java/com/example/firebasefb/MainActivity.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details.

Francesc Recio
  • 2,187
  • 2
  • 13
  • 26
  • Implementation errors will cause build errors that will not allow you to build/install until a successful sync. Could you please share the java code where you try to use .setReadPermissions(String[]) – wareisjared May 07 '19 at 15:04
  • everything thats written is from this https://www.youtube.com/watch?v=mapLbSKNc6I and those other links i posted erlier. but since the youtube clip is old i guess its not working the same way – Simon Nilsson May 07 '19 at 15:35
  • Merging Errors: Warning activity#com.google.firebase.auth.internal.FederatedSignInActivity@android:launchMode was tagged at AndroidManifest.xml:24 to replace other declarations but no other declaration present app main manifest (this file), line 23 – Simon Nilsson May 07 '19 at 16:54

1 Answers1

0
package com.example.firebasefb;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;


import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

import java.util.Arrays;

import static com.example.firebasefb.R.id.login_button;

public class MainActivity extends AppCompatActivity {

    private CallbackManager mCallbackManager;
    private static final String TAG = "FACELOG";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Initialize Facebook Login button
        mCallbackManager = CallbackManager.Factory.create();
        LoginButton loginButton = findViewById(login_button);
        loginButton.setReadPermissions("email", "public_profile");
        loginButton.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                Log.d(TAG, "facebook:onSuccess:" + loginResult);
                //handleFacebookAccessToken(loginResult.getAccessToken());
            }
  • Is this an answer or part of your question. If it's an answer some explenation would be very helpful and if it's part of your question you should use the [edit](https://stackoverflow.com/posts/56024800/edit) button below your question to incorporate it into the question. – André Kool May 07 '19 at 19:02