簡體   English   中英

無法使用Android上的Facebook SDK for Unity登錄

[英]Unable to login with Facebook SDK for Unity on Android

問題

第一次調用FB.Login時,我被重定向到了Facebook,但是回到我的應用程序時似乎出現了問題。 我收到消息“ [應用名稱]已停止工作”。 我已經將堆棧跟蹤的屏幕截圖發布到更下方。

如果我在崩潰之后打開游戲,我會看到我已經登錄並且可以做我想做的事情(邀請朋友等)。 但是,如果我注銷然后再登錄,則會出現相同的問題。

附加信息

  • 我確定我已經正確設置了哈希鍵,否則我將無法調用其他fb函數。
  • 我的manifest.xml使用的是FBUnityPlayerActivity活動,而我沒有在其他活動中擴展UnityPlayerActivity。
  • 似乎我要回到我的應用程序一秒鍾,然后屏幕變黑,然后發生崩潰。
  • 我已將Facebook用於Unity SDK 4.3.4,盡管我已嘗試4.3.3和4.2.4。 我在每個版本上都看到相同的錯誤。
  • 在facebook上的應用程序頁面上,程序包名稱正確,並且類為com.facebook.unity.FBUnityPlayerActivity。
  • 在大約30次嘗試中,有一次我實際上是在登錄后重新進入游戲的。在不更改任何代碼的情況下,下次嘗試時,它崩潰了。
  • 我嘗試刪除所有場景,僅運行Facebook示例場景。 在這種情況下,一切正常。 (我后來發現這僅在以縱向模式運行時有效。)
  • 一切都可以在iOS上運行。 這個錯誤只是Android。

懷疑

當然,我搜索了堆棧跟蹤,似乎這里這里都存在類似的問題。 從Unity SDK發行說明中,我注意到,即使是最新版的sdk,也將Facebook用於Android SDK 3.5.0,這與我鏈接到的問題相同。 如果確實如此,我是否可以在Facebook中將基礎facebook換成android sdk,然后在統一sdk中將其自己更新為新版本?

堆棧跟蹤

在此處輸入圖片說明

我找到了解決方案。 我一點都不了解,但是可以。 查看stacktrace,似乎android無法恢復登錄活動。 我嘗試運行示例項目,並且一切正常,只要我以縱向模式運行。 當我將手機傾斜到橫向模式時 ,即使在示例場景中,也發生了相同的崩潰。 查看清單中的LoginActivity,如下所示:

<activity android:name="com.facebook.LoginActivity" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation">
</activity>

請注意,screenOrientation設置為縱向。 似乎這與我的游戲方向設置為sensorLandscape的事實相結合-android找不到LoginActivity並因此崩潰了。 我刪除了android:screenOrientation =“ portrait”,一切正常。

我不確定Unity的情況,但是基本上,當調用活動未激活或銷毀時,會發生此問題。 在android中,登錄后將調用onActivityResult()方法。 該活動被移動設備強行破壞(開發人員選項設置中的不保留活動選項啟用)。 請一次交叉檢查開發者選項設置中的“不保留活動”已啟用或禁用。

主要問題是密鑰哈希會產生統一性。 顯示統一性的鍵與您在Facebook設置中輸入的不同。

這是解決方案!

  1. 解壓縮.apk文件並解壓縮META-INF \\ CERT.RSA文件
  2. 運行keytool -printcert -file CERT.RSA
  3. 注意SHA1字節的打印方式為29:37:F1:CB:06…
  4. 將SHA1字節復制到HEX到BASE64轉換器
  5. 在輸出字段中查看您的BASE64鍵哈希

該密鑰BASE64是您必須在https://apps.facebook.com/nameapp上的 Facebook設置中輸入的REAL密鑰

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM