Ошибка раздувания класса com.facebook.login.widget.LoginButton с Android Studio и Facebook 4.6.0

В моем build.gradle я импортирую Facebook:

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

В моем классе приложения я инициализирую SDK для Facebook:

 FacebookSdk.sdkInitialize(getApplicationContext()); 

В моем AndroidManifest.xml:

  <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <receiver android:name="com.greenrobot.pirates.HelloFacebookBroadcastReceiver" /> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/fb_app_id" /> Размер  <activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <receiver android:name="com.greenrobot.pirates.HelloFacebookBroadcastReceiver" /> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/fb_app_id" /> 

Это работает с Genymotion. На моем устройстве я получаю сообщение об ошибке, что он не может раздуть класс.

 01-01 19:30:02.207 5880-5880/? E/dalvikvm﹕ Could not find class 'com.greenrobot.pirates.Home$19$1', referenced from method com.greenrobot.pirates.Home$19.onCurrentProfileChanged 01-01 19:30:03.604 5880-5880/? E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.greenrobot.pirates/com.greenrobot.pirates.Home}: android.view.InflateException: Binary XML file line #17: Error inflating class com.facebook.login.widget.LoginButton at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395) at android.app.ActivityThread.access$600(ActivityThread.java:162) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:194) at android.app.ActivityThread.main(ActivityThread.java:5371) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class com.facebook.login.widget.LoginButton at android.view.LayoutInflater.createView(LayoutInflater.java:613) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at android.view.LayoutInflater.inflate(LayoutInflater.java:352) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:281) at android.app.Activity.setContentView(Activity.java:1881) at com.greenrobot.pirates.Home.setupCreateNewAccount(Home.java:885) at com.greenrobot.pirates.Home.checkForUser(Home.java:826) at com.greenrobot.pirates.Home.onCreate(Home.java:1171) at android.app.Activity.performCreate(Activity.java:5122) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)            at android.app.ActivityThread.access$600(ActivityThread.java:162)            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)            at android.os.Handler.dispatchMessage(Handler.java:107)            at android.os.Looper.loop(Looper.java:194)            at android.app.ActivityThread.main(ActivityThread.java:5371)            at java.lang.reflect.Method.invokeNative(Native Method)            at java.lang.reflect.Method.invoke(Method.java:525)            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)            at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:587)            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)            at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)            at android.view.LayoutInflater.inflate(LayoutInflater.java:489)            at android.view.LayoutInflater.inflate(LayoutInflater.java:396)            at android.view.LayoutInflater.inflate(LayoutInflater.java:352)            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:281)            at android.app.Activity.setContentView(Activity.java:1881)            at com.greenrobot.pirates.Home.setupCreateNewAccount(Home.java:885)            at com.greenrobot.pirates.Home.checkForUser(Home.java:826)            at com.greenrobot.pirates.Home.onCreate(Home.java:1171)            at android.app.Activity.performCreate(Activity.java:5122)            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)            at android.app.ActivityThread.access$600(ActivityThread.java:162)            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)            at android.os.Handler.dispatchMessage(Handler.java:107)            at android.os.Looper.loop(Looper.java:194)            at android.app.ActivityThread.main(ActivityThread.java:5371)            at java.lang.reflect.Method.invokeNative(Native Method)            at java.lang.reflect.Method.invoke(Method.java:525)            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)            at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoClassDefFoundError: com.facebook.R$style at com.facebook.login.widget.LoginButton.getDefaultStyleResource(LoginButton.java:576) at com.facebook.FacebookButtonBase.<init>(FacebookButtonBase.java:64) at com.facebook.login.widget.LoginButton.<init>(LoginButton.java:200)            at java.lang.reflect.Constructor.constructNative(Native Method)            at java.lang.reflect.Constructor.newInstance(Constructor.java:417)            at android.view.LayoutInflater.createView(LayoutInflater.java:587)            at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)            at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)            at android.view.LayoutInflater.inflate(LayoutInflater.java:489)            at android.view.LayoutInflater.inflate(LayoutInflater.java:396)            at android.view.LayoutInflater.inflate(LayoutInflater.java:352)            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:281)            at android.app.Activity.setContentView(Activity.java:1881)            at com.greenrobot.pirates.Home.setupCreateNewAccount(Home.java:885)            at com.greenrobot.pirates.Home.checkForUser(Home.java:826)            at com.greenrobot.pirates.Home.onCreate(Home.java:1171)            at android.app.Activity.performCreate(Activity.java:5122)            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)            at android.app.ActivityThread.access$600(ActivityThread.java:162)            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)            at android.os.Handler.dispatchMessage(Handler.java:107)            at android.os.Looper.loop(Looper.java:194)            at android.app.ActivityThread.main(ActivityThread.java:5371)            at java.lang.reflect.Method.invokeNative(Native Method)            at java.lang.reflect.Method.invoke(Method.java:525)            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)            at dalvik.system.NativeStart.main(Native Method) 

редактировать:

Файл xml с кнопкой входа:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <com.facebook.login.widget.LoginButton xmlns:facebook="http://schemas.android.com/apk/res-auto" android:id="@+id/login_button" android:layout_width="400dp" android:layout_height="500dp" android:layout_marginBottom="30dp" android:layout_marginTop="30dp" android:src="@drawable/login_button" /> </LinearLayout> 

Оказывается, я включил multidex и работал на 5.x (эмулятор), но не на 4.x (мое устройство). Как только я добавил библиотеку поддержки multidex, он начал работать правильно.

Похоже, что вы забываете добавить атрибут android: name в тег приложения в файле манифеста.

  <application android:name="{your_app_class}" 

В FacebookSdk.sdkInitialize(getApplicationContext()); мы должны добавить FacebookSdk.sdkInitialize(getApplicationContext()); Перед setContentView(R.layout.YOUR_LAYOUT)

Intereting Posts
Org.w3c.dom.Node с версией Android менее 2.2 Как публиковать имя устройства (переменная) через Wi-Fi, как это делают некоторые приложения для передачи файлов? Настроить представление контекстного меню в android? Как отключить Button, если EditText пуст? Телефонный интернет-телефон не работает Как получить refreshToken при использовании GoogleAuthUtil Служба Android может быть привязана без запуска? «Не удалось получить аудиовход для источника записи 1» при попытке инициализировать AudioRecord Как читать выбранное приложение для определения местоположения в Android M – API 23 В чем разница между аргументом «int» и «long» в onItemClick в Android? ACTION_USER_PRESENT в манифесте с помощью BroadcastReceiver OS X 10.6.6 и «устройства adb» не отображают устройства Android Специфическое оповещение Android Wear Как безопасно сохранить заказ в облаке, если вы не можете проверить платеж из облака? Как выровнять текст в android