{Entrada de Facebook} java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager

He seguido bastante esta guía a la carta, sin embargo, cuando se inicia la aplicación y la sesión de Facebook se debe crear la aplicación se bloquea. Estoy pensando que las bibliotecas no están siendo incluidas en la compilación …

package com.firstandroidapp; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.widget.TextView; import com.facebook.*; import com.facebook.model.*; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // start Facebook Login Session.openActiveSession(this, true, new Session.StatusCallback() { // callback when session changes state @Override public void call(Session session, SessionState state, Exception exception) { if (session.isOpened()) { // make request to the /me API Request.executeMeRequestAsync(session, new Request.GraphUserCallback() { // callback after Graph API response with user object @Override public void onCompleted(GraphUser user, Response response) { if (user != null) { TextView welcome = (TextView) findViewById(R.id.welcome); welcome.setText("Hello " + user.getName() + "!"); } } }); } } }); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); } } 

Aquí está la pila de excepciones:

 10-16 14:13:30.627: E/AndroidRuntime(28793): FATAL EXCEPTION: main 10-16 14:13:30.627: E/AndroidRuntime(28793): java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager 10-16 14:13:30.627: E/AndroidRuntime(28793): at com.facebook.Session.postActiveSessionAction(Session.java:1327) 10-16 14:13:30.627: E/AndroidRuntime(28793): at com.facebook.Session.setActiveSession(Session.java:790) 10-16 14:13:30.627: E/AndroidRuntime(28793): at com.facebook.Session.openActiveSession(Session.java:890) 10-16 14:13:30.627: E/AndroidRuntime(28793): at com.facebook.Session.openActiveSession(Session.java:830) 10-16 14:13:30.627: E/AndroidRuntime(28793): at com.mumin.facebookconnect.FBAuth.onCreate(FBAuth.java:21) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.app.Activity.performCreate(Activity.java:5104) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2260) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2356) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.app.ActivityThread.access$600(ActivityThread.java:150) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.os.Handler.dispatchMessage(Handler.java:99) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.os.Looper.loop(Looper.java:137) 10-16 14:13:30.627: E/AndroidRuntime(28793): at android.app.ActivityThread.main(ActivityThread.java:5195) 10-16 14:13:30.627: E/AndroidRuntime(28793): at java.lang.reflect.Method.invokeNative(Native Method) 10-16 14:13:30.627: E/AndroidRuntime(28793): at java.lang.reflect.Method.invoke(Method.java:511) 10-16 14:13:30.627: E/AndroidRuntime(28793): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 10-16 14:13:30.627: E/AndroidRuntime(28793): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 10-16 14:13:30.627: E/AndroidRuntime(28793): at dalvik.system.NativeStart.main(Native Method) 10-16 14:13:38.175: I/Process(28793): Sending signal. PID: 28793 SIG: 9 

 Just replace YourProject\lib\android-support-v4.jar with facebook-android-sdk-x.xx.x\libs\android-support-v4.jar where x.xx.x is the facebook sdk version, eg 3.21.0 

He encontrado el mismo problema al intentar ejecutar mi aplicación en las versiones de Android antes de lollipop. Después de horas de buscar y jugar con las bibliotecas, pensé que era sólo por el límite de función de 65k en las versiones antes de lollipop.

Así que antes de intentar la solución anterior o cualquier otra solución, recomiendo mover el sdk de Facebook inicializar la llamada más adelante en el código y no en el método onCreate. De esta manera, si el problema se debía al límite de 65k, podría obtener una excepción NoClassDef encontrada para otra clase.

Para solucionar el problema de límite de 65k, sólo tienes que ir a través de tus bibliotecas en build.gradle y eliminar las bibliotecas no utilizadas. También utilice lo que necesita de los apis de Google, especialmente los servicios de Google Play. También ayudará a limpiar su aplicación y reducir el tamaño del archivo.

  • Android Studio: Código de error 1: Gradle: Error de ejecución para la tarea ': app: processDebugResources'
  • No se encontró el elemento de fuente de ejecución de Android Runtime
  • Java.lang.IllegalArgumentException: Caracteres ilegales en la consulta en índice 59
  • La imagen compartida de Android no borra la vista previa de un elemento previamente compartido
  • OpenCV color-valor de un píxel usando mat.get () devuelve a veces null
  • AndroidPDFViewer - No se puede abrir el documento pdf en mi aplicación
  • ¿Cómo puedo imprimir / registrar contenido de cuerpo entero de MultiPartEntity que está siendo utilizado por HTTPRequest?
  • ¿Cómo crear un directorio en Android?
  • Android Multitouch - Determina qué dedo levantado?
  • Volley funciona en WIFI pero no en 3G
  • ¿Qué es una clase de adaptador?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.