简体   繁体   English

Facebook SDK(通过Facebook登录)

[英]Facebook SDK (Login Via Facebook)

I Followed this instruction on how to implement facebook login Link--- 我遵循了有关如何实现Facebook登录链接的说明---
Then after done all the necessary things, I got this error. 然后,在完成所有必要的操作之后,我得到了这个错误。

10-19 23:52:40.810 29563-29563/com.thesis.juandirection.juandirectionfinale D/dalvikvm: Late-enabling CheckJNI
10-19 23:52:40.918 29563-29563/com.thesis.juandirection.juandirectionfinale W/dalvikvm: Exception Lcom/facebook/FacebookSdkNotInitializedException; thrown while initializing Lcom/facebook/login/widget/LoginButton;
10-19 23:52:40.918 29563-29563/com.thesis.juandirection.juandirectionfinale W/dalvikvm: Class init failed in Constructor.constructNative (Lcom/facebook/login/widget/LoginButton;)
10-19 23:52:40.918 29563-29563/com.thesis.juandirection.juandirectionfinale D/AndroidRuntime: Shutting down VM
10-19 23:52:40.918 29563-29563/com.thesis.juandirection.juandirectionfinale W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xa4d0bb20)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime: FATAL EXCEPTION: main
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime: Process: com.thesis.juandirection.juandirectionfinale, PID: 29563
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime: java.lang.ExceptionInInitializerError
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at java.lang.reflect.Constructor.constructNative(Native Method)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.createView(LayoutInflater.java:594)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.thesis.juandirection.juandirectionfinale.MainActivity.onCreate(MainActivity.java:31)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:5231)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread.access$800(ActivityThread.java:135)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:136)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5001)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:515)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:  Caused by: null
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.facebook.internal.Validate.sdkInitialized(Validate.java:99)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.facebook.FacebookSdk.getCallbackRequestCodeOffset(FacebookSdk.java:735)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.facebook.internal.CallbackManagerImpl$RequestCodeOffset.toRequestCode(CallbackManagerImpl.java:109)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.facebook.login.widget.LoginButton.<clinit>(LoginButton.java:58)
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at java.lang.reflect.Constructor.constructNative(Native Method) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.thesis.juandirection.juandirectionfinale.MainActivity.onCreate(MainActivity.java:31) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:5231) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread.access$800(ActivityThread.java:135) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:136) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5001) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:515) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
10-19 23:52:40.922 29563-29563/com.thesis.juandirection.juandirectionfinale E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 

I just copied the XML part of the tutorial and here's my Android Manifest. 我只是复制了教程的XML部分,这是我的Android清单。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.thesis.juandirection.juandirectionfinale" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:configChanges=
                "keyboard|keyboardHidden|screenLayout|screenSize|orientation">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <meta-data android:name="com.facebook.sdk.ApplicationId"
                    android:value="@string/facebook_app_id"/>
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".mapView.MapView"
            android:label="@string/title_activity_map_view" >
        </activity>
        <activity
            android:name=".searchView.searchView"
            android:label="@string/title_activity_search_view" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".mapView.MapView" />
        </activity>
    </application>

</manifest>

Here's my MainActivity. 这是我的MainActivity。

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;

import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;
import com.thesis.juandirection.juandirectionfinale.R;
import com.thesis.juandirection.juandirectionfinale.mapView.MapView;

public class MainActivity extends ActionBarActivity {

    private TextView info;
    private LoginButton loginButton;
    private Toolbar toolbar;
    private CallbackManager callbackManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       FacebookSdk.sdkInitialize(getApplicationContext());
        callbackManager = CallbackManager.Factory.create();
        info = (TextView)findViewById(R.id.info);
        loginButton = (LoginButton)findViewById(R.id.login_button);
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                info.setText(
                        "User ID: "
                                + loginResult.getAccessToken().getUserId()
                                + "\n" +
                                "Auth Token: "
                                + loginResult.getAccessToken().getToken()
                );
            }

            @Override
            public void onCancel() {
                info.setText("Login attempt canceled.");
            }

            @Override
            public void onError(FacebookException e) {
                info.setText("Login attempt failed.");
            }
        });

/*
        toolbar = (Toolbar) findViewById(R.id.app_bar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayShowHomeEnabled(true)*/

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    public void goMaps(View v) {
        startActivity(new Intent(this, MapView.class));
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement

        return super.onOptionsItemSelected(item);
    }
}

Thanks guys! 多谢你们! EDIT: Adding permission for Internet doesn't changed the result. 编辑:添加Internet的权限不会更改结果。

Try to initialize your SDK before setContentView() method. 尝试在setContentView()方法之前初始化您的SDK。

  FacebookSdk.sdkInitialize(getApplicationContext());
  setContentView(R.layout.activity_main);

Hope it will solve your problem. 希望它能解决您的问题。

Maybe you forgot to initialize sdk 也许您忘了初始化SDK

public class App extends Application {


    @Override public void onCreate() {
        super.onCreate();
        FacebookSdk.sdkInitialize(getApplicationContext());

    }

}

And Add name attribute pointing to the App class. 并添加名称属性指向App类。

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:name=".App"
 >

Hope it helps 希望能帮助到你

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM