NullPointerExcepetion Facebook sdk v4.5.0 cuando habilite Proguard (cuando intente ingresar usando la biblioteca de Parse)

Estoy intentando entrar con Facebook usando la biblioteca de ParseFacebookUtils y está trabajando bueno pero cuando hice posible el archivo de Proguard tengo esta excepción en inicio de la actividad de la conexión de Facebook:

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{my.package.name/com.facebook.FacebookActivity}: java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471) at android.app.ActivityThread.access$900(ActivityThread.java:175) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5602) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) at dalvik.system.NativeStart.main(NativeStart.java) Caused by java.lang.NullPointerException at java.lang.Enum$1.create(Enum.java:43) at java.lang.Enum$1.create(Enum.java:35) at libcore.util.BasicLruCache.get(BasicLruCache.java:54) at java.lang.Enum.getSharedConstants(Enum.java:209) at java.lang.Enum.valueOf(Enum.java:189) at com.facebook.login.LoginBehavior.valueOf(LoginBehavior.java:26) at com.facebook.login.LoginClient$Request.(LoginClient.java) at com.facebook.login.LoginClient$Request.(LoginClient.java) at com.facebook.login.LoginClient$Request$1.createFromParcel(LoginClient.java:2521) at android.os.Parcel.readParcelable(Parcel.java:2111) at android.os.Parcel.readValue(Parcel.java:2020) at android.os.Parcel.readArrayMapInternal(Parcel.java:2321) at android.os.Bundle.unparcel(Bundle.java:249) at android.os.Bundle.getString(Bundle.java:1118) at android.content.Intent.getStringExtra(Intent.java:5145) at com.google.android.gms.analytics.Tracker$zza.zziJ(Unknown Source:4000) at com.google.android.gms.analytics.GoogleAnalytics.isInitialized(Unknown Source) at com.google.android.gms.analytics.GoogleAnalytics$zzb.onActivityStarted(Unknown Source) at android.app.Application.dispatchActivityStarted(Application.java:219) at android.app.Activity.onStart(Activity.java:1087) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:535) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1177) at android.app.Activity.performStart(Activity.java:5461) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2386) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471) at android.app.ActivityThread.access$900(ActivityThread.java:175) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5602) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) at dalvik.system.NativeStart.main(NativeStart.java) 

Mi archivo Proguard:

 -keep class !android.support.v7.internal.view.menu.**,android.support.v7.** {*;} # -keep interface android.support.v7.** { *; } -keep public class android.support.v7.widget.** { *; } -keep public class android.support.v7.internal.widget.** { *; } -keep public class * extends android.support.v4.view.ActionProvider { public <init>(android.content.Context); } # Keep source file names, line numbers, and Parse class/method names for easier debugging -keepattributes SourceFile,LineNumberTable -keepnames class com.parse.** { *; } # Required for Parse -keepattributes *Annotation* -keepattributes Signature -dontwarn android.net.SSLCertificateSocketFactory -dontwarn android.app.Notification -dontwarn com.squareup.** -dontwarn okio.** # Required for crashlytics -keep class com.crashlytics.** { *; } -keep class com.crashlytics.android.** -dontwarn android.support.v4.** # Required for eventbus -keepclassmembers class ** { @org.greenrobot.eventbus.Subscribe <methods>; } -keep enum org.greenrobot.eventbus.ThreadMode { *; } -keepclassmembers class ** { public void onEvent*(**); } 

Mi archivo de manifiesto:

  <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_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" /> <provider android:authorities="com.facebook.app.FacebookContentProviderMyAppID" android:name="com.facebook.FacebookContentProvider" android:exported="true" /> 

Código de acceso:

 ParseFacebookUtils.logInWithReadPermissionsInBackground(this, Collections.singletonList("public_profile"), new LogInCallback() { @Override public void done(ParseUser user, ParseException err) { if (user == null) { mErrorMessage = ParseErrorHandler.handleParseError(err); showContent(true); } else if (user.isNew()) { syncData(); } else { syncData(); } } }); 

Nota: La aplicación se ejecuta normalmente cuando se establece minifyEnabled false , Así que mi problema con el archivo Proguard
Y sé que "la documentación de Android SDK de Facebook":

No tiene que realizar ningún paso adicional para utilizar ProGuard para el SDK de Android de Facebook.

3 Solutions collect form web for “NullPointerExcepetion Facebook sdk v4.5.0 cuando habilite Proguard (cuando intente ingresar usando la biblioteca de Parse)”

Acabo de agregar esta línea y está funcionando:

 -keep class com.facebook.** { *; } 

Usted tiene que agregar debajo de líneas en su archivo, eso resolverá su problema.

Sólo hay que añadir debajo de las líneas.

 -dontwarn com.facebook.** -keep class com.facebook.** { *; } -keepattributes Signature 
  1. Ignore la advertencia, o no avise para el paquete com.facebook
  2. Mantener las clases y las clases internas dentro de ese paquete.
  3. Mantener la firma del atributo.

Intenta agregar

-keep clase com.facebook. * -keep class com.facebook.login. *

En su archivo proguard

  • Cómo obtener el token del dispositivo
  • Recuperación lenta de datos con android y parse.com
  • ParseException: Error de token de sesión no válido
  • FailedBinderTransaction-TransactionTooLargeException
  • El método setDefaultPushCallback del tipo PushService está obsoleto usando android
  • Cloudinary Excepción de archivo de imagen no válida
  • Cómo cargar una imagen en el servidor de análisis utilizando analizar api en android
  • Android Parse Presione el registro de dispositivo de notificación sólo una vez en un dispositivo
  • No se puede codificar un archivo de análisis no guardado, trabajando con ParseUser
  • Android parse.com No se puede recibir notificaciones push
  • Navegar hasta la actividad de los padres desde la notificación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.