2011-05-24 34 views
2

我有一個Android應用程序,允許用戶連接到他的Facebook帳戶並自動在他的牆上發佈帖子。Android + Facebook Connect無法在發佈版本中工作

所有這些都與調試版本(使用回退webview對話框或本機應用程序活動)完美協作。我正在使用適用於Android的最新Facebook Connect API。

當測試應用程序的發佈版本時,我注意到回退webview對話框不允許連接到Facebook(在輸入用戶名/密碼後,它顯示一個標準的404頁面,說它找不到頁面fbconnect :/成功/#access_token = 3213546 ...)

我懷疑proguard已經剝去了一些代碼,但我不知道如何確定是什麼導致問題。任何人都可以提供一些線索並讓我朝着正確的方向前進嗎?

我proguard.cfg文件包含以下行離開Facebook連接獨自:

-keep class com.facebook.android.* 
-keepclassmembers public class com.facebook.android.Facebook { 
    public static final *; 
} 

在usage.txt我能看到的Facebook類,線繩構件,...

回答

3

我固定它遵守以下規則(但我不是專家,所以可能會有錯誤)。

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

我似乎有類似的問題... 日誌顯示了一些關於com.facebook.android.FBDialog(混淆)和android.webkit.WebViewClient 我也不是ProGuard的專家!有人可以確認這些規則是否可以(不在頂部)? 這會做這份工作嗎? -keep public class com.facebook。** {*;} – Kavi 2011-08-20 20:48:04

+1

此方法還會停止僅從WebView中的JavaScript中調用的proguard重擊JavaScript接口方法。否則,Java接口方法會被proguard刪除,導致WebView的JavaScript找不到調用Java的方法。該程序可以在Eclipse下完美工作,但在發佈時會默默無聞。這個答案拯救了無數小時的挫敗感。 – Colin 2012-01-05 20:32:06

2

我得到的錯誤網頁無法fbconnect://成功#access_token = ... 使用連接到Facebook的現有應用程序(Draw Something)時。當我卸載我在手機上安裝的兩個不同的Facebook應用程序(Galaxy Note 2與Android 4.1.2)並重新安裝當前的Facebook應用程序時,問題就消失了。

+0

更新facebook應用程序解決了我的問題:) – marimaf 2013-05-27 17:56:39

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

輸出應在Android -> Key Hashes在Facebook的設置中設置

相關問題