簡體   English   中英

Android中的Facebook登錄按鈕錯誤

[英]Facebook LogIn button errors in Android

沒有Facebook登錄按鈕,我的應用程序可以完美運行。 當我嘗試添加它時,出現大量錯誤,應用突然停止:

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.francydarkcool.maps, PID: 2801
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.francydarkcool.maps/com.example.francydarkcool.maps.LogIn}: android.view.InflateException: Binary XML file line #13: Error inflating class com.facebook.login.widget.LoginButton
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                      at android.app.ActivityThread.access$800(ActivityThread.java:151)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:135)
                      at android.app.ActivityThread.main(ActivityThread.java:5254)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:372)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                   Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class com.facebook.login.widget.LoginButton
                      at android.view.LayoutInflater.createView(LayoutInflater.java:633)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
                      at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                      at com.example.francydarkcool.maps.LogIn.onCreate(LogIn.java:22)
                      at android.app.Activity.performCreate(Activity.java:5990)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5254) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
                   Caused by: java.lang.reflect.InvocationTargetException
                      at java.lang.reflect.Constructor.newInstance(Native Method)
                      at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
                      at android.view.LayoutInflater.createView(LayoutInflater.java:607)
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
                      at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                      at com.example.francydarkcool.maps.LogIn.onCreate(LogIn.java:22) 
                      at android.app.Activity.performCreate(Activity.java:5990) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5254) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
                   Caused by: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
                      at com.facebook.internal.Validate.sdkInitialized(Validate.java:145)
                      at com.facebook.AccessTokenTracker.<init>(AccessTokenTracker.java:55)
                      at com.facebook.login.widget.LoginButton$2.<init>(LoginButton.java:563)
                      at com.facebook.login.widget.LoginButton.configureButton(LoginButton.java:563)
                      at com.facebook.FacebookButtonBase.<init>(FacebookButtonBase.java:69)
                      at com.facebook.login.widget.LoginButton.<init>(LoginButton.java:201)
                      at java.lang.reflect.Constructor.newInstance(Native Method) 
                      at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
                      at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
                      at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
                      at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                      at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
                      at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                      at com.example.francydarkcool.maps.LogIn.onCreate(LogIn.java:22) 
                      at android.app.Activity.performCreate(Activity.java:5990) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                      at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5254) 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

E/UncaughtException: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.francydarkcool.maps/com.example.francydarkcool.maps.LogIn}: android.view.InflateException: Binary XML file line #13: Error inflating class com.facebook.login.widget.LoginButton
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                         at android.app.ActivityThread.access$800(ActivityThread.java:151)
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                         at android.os.Handler.dispatchMessage(Handler.java:102)
                         at android.os.Looper.loop(Looper.java:135)
                         at android.app.ActivityThread.main(ActivityThread.java:5254)
                         at java.lang.reflect.Method.invoke(Native Method)
                         at java.lang.reflect.Method.invoke(Method.java:372)
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                      Caused by: android.view.InflateException: Binary XML file line #13: Error inflating class com.facebook.login.widget.LoginButton
                         at android.view.LayoutInflater.createView(LayoutInflater.java:633)
                         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
                         at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
                         at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                         at com.example.francydarkcool.maps.LogIn.onCreate(LogIn.java:22)
                         at android.app.Activity.performCreate(Activity.java:5990)
                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                         at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                         at android.os.Looper.loop(Looper.java:135) 
                         at android.app.ActivityThread.main(ActivityThread.java:5254) 
                         at java.lang.reflect.Method.invoke(Native Method) 
                         at java.lang.reflect.Method.invoke(Method.java:372) 
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
                      Caused by: java.lang.reflect.InvocationTargetException
                         at java.lang.reflect.Constructor.newInstance(Native Method)
                         at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
                         at android.view.LayoutInflater.createView(LayoutInflater.java:607)
                         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
                         at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                         at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                         at com.example.francydarkcool.maps.LogIn.onCreate(LogIn.java:22) 
                         at android.app.Activity.performCreate(Activity.java:5990) 
                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                         at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                         at android.os.Looper.loop(Looper.java:135) 
                         at android.app.ActivityThread.main(ActivityThread.java:5254) 
                         at java.lang.reflect.Method.invoke(Native Method) 
                         at java.lang.reflect.Method.invoke(Method.java:372) 
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
                      Caused by: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
                         at com.facebook.internal.Validate.sdkInitialized(Validate.java:145)
                         at com.facebook.AccessTokenTracker.<init>(AccessTokenTracker.java:55)
                         at com.facebook.login.widget.LoginButton$2.<init>(LoginButton.java:563)
                         at com.facebook.login.widget.LoginButton.configureButton(LoginButton.java:563)
                         at com.facebook.FacebookButtonBase.<init>(FacebookButtonBase.java:69)
                         at com.facebook.login.widget.LoginButton.<init>(LoginButton.java:201)
                         at java.lang.reflect.Constructor.newInstance(Native Method) 
                         at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
                         at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
                         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
                         at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                         at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                         at com.example.francydarkcool.maps.LogIn.onCreate(LogIn.java:22) 
                         at android.app.Activity.performCreate(Activity.java:5990) 
                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                         at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                         at android.os.Looper.loop(Looper.java:135) 
                         at android.app.ActivityThread.main(ActivityThread.java:5254) 
                         at java.lang.reflect.Method.invoke(Native Method) 
                         at java.lang.reflect.Method.invoke(Method.java:372) 
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

我看過其他類似的帖子,那里的問題已得到糾正,但我都沒有...請幫助

這是LogIn.java文件:

package com.example.francydarkcool.maps;

import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.telecom.Call;

import com.facebook.CallbackManager;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
import com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.appindexing.Thing;
import com.google.android.gms.common.api.GoogleApiClient;

public class LogIn extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_log_in);
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
        System.out.println("here");
    }


    /**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See https://g.co/AppIndexing/AndroidStudio for more information.
     */
    public Action getIndexApiAction() {
        Thing object = new Thing.Builder()
                .setName("LogIn Page") // TODO: Define a title for the content shown.
                // TODO: Make sure this auto-generated URL is correct.
                .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]"))
                .build();
        return new Action.Builder(Action.TYPE_VIEW)
                .setObject(object)
                .setActionStatus(Action.STATUS_TYPE_COMPLETED)
                .build();
    }

    @Override
    public void onStart() {
        super.onStart();
    }

    @Override
    public void onStop() {
        super.onStop();
    }
} 

這是activity_log_in.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_log_in"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.francydarkcool.maps.LogIn">

    <com.facebook.login.widget.LoginButton
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="30dp" />

    <TextView
        android:text="Bine ati venit!"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView"
        android:textSize="32dp"
        android:textStyle="normal|bold|italic"
        android:textColor="@color/com_facebook_button_background_color_pressed"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="129dp" />

</RelativeLayout>

我添加了這個:

<activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:label="@string/app_name" />

在AndroidManifest.xml中,並且:

<meta-data
        android:name="com.facebook.sdk.ApplicationId" android:value="@string/xxxxx"/>

另外,在strings.xml中,我添加了:

<string name="facebook_app_id">xxxx</string>

在您的錯誤消息中,它指出

Caused by: The SDK has not been initialized. Make sure to call FacebookSdk.sdkInitialize() first.

您的布局中有一個com.facebook.login.widget.LoginButton按鈕,並且您嘗試在調用FacebookSdk.sdkInitialize()方法之前將該布局設置為內容視圖。 交換這些語句的順序。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    FacebookSdk.sdkInitialize(getApplicationContext());
    setContentView(R.layout.activity_log_in);
    AppEventsLogger.activateApp(this);
    System.out.println("here");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM