1

Я пытаюсь выполнить вход с Facebook с помощью Firebase аутентификации, так что я все шагиОшибка при наполнении класса com.facebook.login.widget.LoginButton

поэтому сначала я добавил FacebookActivity в моем AndroidManifest:

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

второй я добавил кнопку для входа в мой фрагмент:

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

и, наконец, это мой следующий код:

FacebookSdk.sdkInitialize(getApplicationContext()); 
    mCallbackManager = CallbackManager.Factory.create(); 
    LoginButton btn_login_facebook = (LoginButton) view.findViewById(R.id.btn_login_facebook); 
    btn_login_facebook.setReadPermissions("email"); 
    btn_login_facebook.setFragment(this); 
    btn_login_facebook.registerCallback(mCallbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult loginResult) { 
      Log.i(TAG, "onSuccess:"); 
     } 
     @Override 
     public void onCancel() { 
      Log.i(TAG, "onCancel: "); 
     } 
     @Override 
     public void onError(FacebookException exception) { 
      Log.i(TAG, "onError: "); 
     } 
    }); 

и я последовал за все шаги, чтобы добавить Facebook SDK и Facebook App ID на https://developers.facebook.com

поэтому проблема здесь, когда я запустить приложение это треснувшие и я получил эту ошибку:

Процесс: com.th3codefather.www.tripexp, PID: 21998 java.lang.RuntimeException: не удалось запустить активность ComponentInfo {com.th3codefather.www.tripexp/com.th3codefather.www.tripexp.MainActivity}: android.view .InflateException: двоичная строка XML-файла # 58: Ошибка накачивания класс com.facebook.login.widget.LoginButton на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2325) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387) в android.app.ActivityThread.access $ 800 (ActivityThread.java:151) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303) в android.os.Handler.dispatchMessage (Handler.java: 102) на android.os.Looper.loop (Looper.java:135) at android.app.ActivityThread.main (Активность Thread.java:5254) at java.lang.reflect.Method.invoke (собственный метод) 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) Вызвано: android.view.InflateException: двоичная строка XML-файла # 58: Ошибка раздувания класса com.facebook.login.widget.LoginButton на android.view.LayoutInflater.createView (LayoutInflater.java:633) на android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:743) на android.view.LayoutInflater.rInflate (LayoutInflater.java:806) на android.view.LayoutInflater.inflate (LayoutInflater.java:504) на android.view.LayoutInflater.inflate (LayoutInflater.java:414) на com.th3codefather.www.tripexp.LoginFragment.onCreateView (LoginFragment.java:54) в android.app.Fragment.performCreateView (Fragment.java:2053) на android.app.FragmentManagerImpl.moveToState (FragmentManager.java : 894) at android.app.FragmentManagerImpl.moveToState (FragmentManager.Java: 1067) на android.app.BackStackRecord.run (BackStackRecord.java:834) на android.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:1452) на android.app.Activity.performStart (Activity.java : 6005) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2288) в android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387) в android.app.ActivityThread.access $ 800 (ActivityThread. java: 151) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java: 1303) на android.os.Handler.dispatchMessage (Handler.java:102) на android.os.Looper.loop (Looper.java:135) на android.app.ActivityThread.main (ActivityThread.java:5254) на java.lang.reflect.Method.invoke (Native Method) в java.lang.reflect.Method.invoke (Method.java:372) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:698) Вызвано: java.lang.reflect.InvocationTargetException at jav a.lang.reflect.Constructor.newInstance (Родной метод) на java.lang.reflect.Constructor.newInstance (Constructor.java:288) на android.view.LayoutInflater.createView (LayoutInflater.java:607) в android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:743) на android.view.LayoutInflater.rInflate (LayoutInflater.java:806) на android.view.LayoutInflater.inflate (LayoutInflater.java:504) на андроид. view.LayoutInflater.inflate (LayoutInflater.java:414) at com.th3codefather.www.tripexp.LoginFragment.onCreateView (LoginFragment.java:54) в android.app.Fragment.performCreateView (Fragment.java:2053) на android.app.FragmentManagerImpl.moveToState (FragmentManager.java:894) на android.app.FragmentManagerImpl.moveToState (FragmentManager.java:1067) на android.app.BackStackRecord.run (BackStackRecord.java:834) на android.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:1452) на android.app.Activity.performStart (Activity.java:6005) at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2288) на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387) в android.app.ActivityThread.access $ 800 (ActivityThread.java:151) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java : 1303) на android.os.Handler.dispatchMessage (Handler.java:102) на android.os.Looper.loop (Looper.java:135) на android.app.ActivityThread.main (ActivityThread.java:5254) по адресу java.lang.reflect.Method.invoke (собственный метод) по адресу java.lang.reflect.Method.invoke (метод.Java: 372) на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:698) Вызванный : SDK не был инициализирован, не забудьте сначала позвонить FacebookSdk.sdkInitialize(). на com.facebook.internal.Validate.sdkInitialized (Validate.java:145) в com.facebook.AccessTokenTracker. (AccessTokenTracker.java:55) в com.facebook.login.widget.LoginButton $ 2. (LoginButton. Java: 563) на com.facebook.login.widget.LoginButton.configureButton (LoginButton.java:563) в com.facebook.FacebookButtonBase (FacebookButtonBase.java:64) на com.facebook.login.widget.. LoginButton. (LoginButton.java:201) at java.lang.reflect.Constructor.newInstance (собственный метод) at java.lang.reflect.Constructor.newInstance (Constructor.java:288) на android.view.LayoutInflater.createView (LayoutInflater.java:607) на android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:743) на android.view.LayoutInflater.rInflate (LayoutInflater .java: 806) на android.view.LayoutInflater.inflate (LayoutInflater.java:504) в android.view.LayoutInflater.inflate (LayoutInflater.java:414) на com.th3codefather.www.tripexp.LoginFragment. onCreateView (LoginFragment.java:54) at android.app.Fragment.performCreateView (Fragment.java:2053) на android.app.FragmentManagerImpl.moveToState (FragmentManager.java:894) на android.app.FragmentManagerImpl.moveToState (FragmentManager.java:1067) в android.app.BackStackRecord.run (BackStackRecord.java:834) на android.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:1452) на android.app.Activity.performStart (Activity.java:6005) на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2288) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2387)в android.app.ActivityThread.access $ 800 (ActivityThread.java:151) на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303) в android.os.Handler.dispatchMessage (Handler.java: 102) на android.os.Looper.loop (Looper.java:135) на android.app.ActivityThread.main (ActivityThread.java:5254) на java.lang.reflect.Method.invoke (собственный метод) в java.lang.reflect.Method.invoke (Method.java:372) по адресу com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main (ZygoteInit.Java: 698)

ответ

2

инициализация:

FacebookSdk.sdkInitialize(getApplicationContext()); 

должен быть сделан перед установкой вида контента.

Если вы:

setContentView(R.layout.activity_main); 

перед intialization, кнопка Facebook не будет завышена в деятельности.

+0

Вот как я решил свою проблему, спасибо вам. –

Смежные вопросы