我有一个Android应用程序,允许用户连接到他的Facebook帐户并自动在他的墙上发帖。
所有这些都与调试版本完美配合(使用回退webview对话框或本机应用程序活动)。我正在使用Android的最新Facebook Connect API。
在测试应用程序的发布版本时,我注意到后备webview对话框不允许连接到Facebook(在输入用户名/密码后,它显示一个标准的404页面,说它无法找到页面fbconnect: /成功/#=的access_token 3213546 ...)
我怀疑proguard剥离了一些代码,但我无法弄清楚如何确定导致问题的原因。任何人都能提供一些线索并让我朝着正确的方向前进吗?
我的proguard.cfg文件包含以下行,仅保留Facebook Connect:
-keep class com.facebook.android.*
-keepclassmembers public class com.facebook.android.Facebook {
public static final *;
}
在usage.txt中我可以看到facebook类,字符串成员......
答案 0 :(得分:3)
我使用以下规则修复它(但我不是专家,所以可能会有错误。)
-keep class com.facebook.android.*
-keep class android.webkit.WebViewClient
-keep class * extends android.webkit.WebViewClient
-keepclassmembers class * extends android.webkit.WebViewClient {
<methods>;
}
答案 1 :(得分:2)
对于facebook sdk 3.0来说,这是唯一有用的东西:
-keepattributes Signature
-dontwarn com.facebook.**
-dontwarn com.parse.**
-keep class com.facebook.** { *; }
-keep class com.parse.** { *; }
(来自http://adilatwork.blogspot.com/2013/01/parse-android-sdk-facebook-and-proguard.html)
答案 2 :(得分:2)
我收到的错误网页不可用fbconnect:// success#access_token = ... 使用连接到Facebook的现有应用程序(Draw Something)时。当我卸载我手机上安装的两个不同的facebook应用程序(Galaxy note 2 with Android 4.1.2)并重新安装当前的facebook应用程序时,问题就消失了。
答案 3 :(得分:0)
要使facebookConnect与Android发布版本一起使用,您需要创建对密钥库文件的引用,您已将其用于签署应用程序。
在mac上:
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
胜利:
keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64
输出应在Facebook设置中的Android -> Key Hashes
中设置