使用android

时间:2017-05-27 04:03:40

标签: android facebook firebase firebase-authentication inflate-exception

我想在我的Android应用程序中使用firebase登录facebook,所以在将我的应用程序与firebase连接后,我添加了facebook sdk compile 'com.facebook.android:facebook-android-sdk:[4,5)'的依赖关系但是当我运行我的应用程序时它会显示

  

android.view.InflateException:二进制XML文件行#20:二进制XML文件行#20:错误输出类com.facebook.login.widget.LoginButton

XML代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.environer.becofriend.MainActivity"
android:orientation="vertical"
android:gravity="center">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<com.facebook.login.widget.LoginButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</LinearLayout>

注意:我没有在MainActivity中添加任何代码,因为sdk在新的sdk中自动初始化

1 个答案:

答案 0 :(得分:0)

试试这个,我认为改变成绩将完成工作,我有工作的例子

1) Gradle

compile 'com.facebook.android:facebook-android-sdk:4.0.0'

2)的 XML

<com.facebook.login.widget.LoginButton
                    android:background="@drawable/login_button_back_one"
                    android:id="@+id/login_button"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"/>

3) Java

    private AccessTokenTracker accessTokenTracker;
    private ProfileTracker profileTracker;
    private CallbackManager callbackManager; 
    LoginButton loginButton;

 FacebookSdk.sdkInitialize(ActivityName.this);

        loginButton = (LoginButton) findViewById(R.id.login_button);


        callbackManager = CallbackManager.Factory.create();

        accessTokenTracker= new AccessTokenTracker() {
            @Override
            protected void onCurrentAccessTokenChanged(AccessToken oldToken, AccessToken newToken) {

            }
        };
 accessTokenTracker.startTracking();

 private void displayMessage(Profile profile){
        if(profile != null){
            Log.v("@@@WWE"," "+profile);
        }
    }