Configuraciones de Android ProGuard para Facebook

Finalmente descubrí por qué mi aplicación se bloquea para su lanzamiento. ProGuard efectivamente eliminó el código de mi aplicación, pero lo evité agregando manualmente las clases con el comando keep en el proguard-android.txt (encontrado en el SDK).

Para Facebook he utilizado:

-keep class com.facebook.android.*
-keep class android.webkit.WebViewClient
-keep class * extends android.webkit.WebViewClient
-keepclassmembers class * extends android.webkit.WebViewClient { 
    <methods>; 
}

Pero creo que todavía me falta algo. La aplicación está libre de fallos ahora, pero no puedo iniciar sesión en Facebook y usar Open Graph. Cuando construí en modo de depuración todo esto funciona bien.

¿Cuáles son las configuraciones de tu programa para usar Facebook y Open Graph de Facebook?

EDITAR

Estos son mis comandos agregados manualmente para ProGuard:

-dontwarn android.support.**

# ActionBarSherlock 

-keep class android.support.** { *; } 

-keep interface android.support.** { *; } 

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

-keep interface com.actionbarsherlock.** { *; } 




# Keep line numbers to alleviate debugging stack traces 

-renamesourcefileattribute SourceFile 

-keepattributes SourceFile,LineNumberTable

-keepclassmembers class * implements java.io.Serializable
{
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-keep class com.facebook.android.*
-keep class android.webkit.WebViewClient
-keep class * extends android.webkit.WebViewClient
-keepclassmembers class * extends android.webkit.WebViewClient { 
    <methods>; 
}

Editar 2 Entonces, el problema para no iniciar sesión fue que usé mi clave hash de depuración en lugar de mi clave hash de lanzamiento. Cambié eso en la configuración de mi aplicación (developers.facebook.com) y descubrí que mi aplicación finalmente inicia sesión pero se bloquea después de iniciar sesión.

No sé si esto sigue siendo un problema de ProGuard pero devolvió este error:

04-02 11:47:31.815: E/AndroidRuntime(9093): FATAL EXCEPTION: main
04-02 11:47:31.815: E/AndroidRuntime(9093): com.facebook.ab: com.facebook.b.e got an unexpected method signature: public abstract com.facebook.b.b com.facebook.b.b.a(java.lang.Class)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at com.facebook.b.f.a(SourceFile:400)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at com.facebook.b.e.b(SourceFile:546)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at com.facebook.b.e.invoke(SourceFile:470)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at $Proxy1.a(Native Method)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at com.facebook.bb.a(SourceFile:124)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at com.facebook.ar.a(SourceFile:264)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at com.facebook.as.run(SourceFile:1240)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at android.os.Handler.handleCallback(Handler.java:615)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at android.os.Handler.dispatchMessage(Handler.java:92)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at android.os.Looper.loop(Looper.java:137)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at android.app.ActivityThread.main(ActivityThread.java:4931)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at java.lang.reflect.Method.invokeNative(Native Method)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at java.lang.reflect.Method.invoke(Method.java:511)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
04-02 11:47:31.815: E/AndroidRuntime(9093):     at dalvik.system.NativeStart.main(Native Method)
04-02 11:47:31.820: W/ActivityManager(2130):   Force finishing activity com.xxxxx.xxxx/com.xxxxx.views.MainActivity
04-02 11:47:32.360: W/ActivityManager(2130): Activity pause timeout for ActivityRecord{4289ca58 com.xxxxx.xxxxx/com.xxxxx.xxxxx.MainActivity}

Respuestas a la pregunta(2)

Su respuesta a la pregunta