2013-03-31 91 views
0

好的,我已經搜遍了網絡的所有四個角落......兩次......並且還沒有找到答案,並且我認爲這應該是一件小事沒有我已經嘗試過的工作。這個問題似乎已經出現在互聯網上,但應用程序仍然與Faceboook集成開發,所以爲什麼我找不到翻轉的答案!SSO Facebook連接登錄插件失敗 - 科爾多瓦

無論如何,我要寫下我所做的一切。

  1. 下載最新的cordova並建立一個項目。
  2. 下載了Facebook連接的科爾多瓦/ PhoneGap的插件,並在hackbook添加到我的項目
  3. 下載了最新的Java SDK
  4. 設置一個單獨的Facebook SDK項目
  5. 包含在單獨的項目到我的項目需要的Facebook登錄驗證。
  6. 在config.xml插件項目中添加了ConnectPlugin.java文件並將其包含在plugin調用中。
  7. 融入Facebook,https://developers.facebook.com/apps/爲自己設置了一個應用程序。
  8. 給它一個臨時名稱,並在一些基本信息中加入。
  9. 放下原生Android應用程序,放入包名(org.apache.cordova.name)和類(org.apache.cordova.name.main),並確保將「facebook登錄」設置爲啓用。
  10. 下載OpenSSL的
  11. 打開命令提示符,導航到C(大家都說上下載win8的(IM)之一):\ Program Files文件\的Java \ jdk1.7.0_17 \ bin和跑

keytool -exportcert -alias androiddebugkey -keystore c:\ android \ debug.keystore | C:\ OpenSSL \ bin \ openssl sha1 -binary | C:\ OpenSSL \ bin \ openssl base64

我複製了android sdk文件夾中的debug keystore,並將其設置爲較短的路徑dir,因爲我懶惰。

  1. 當詢問時輸入了我的密碼。
  2. 複製了這樣的密鑰存儲區Bmce + 9aHdOoVtE7fS3F07tfj7Bc =並在facebook android本機應用程序詳細信息中輸入了應用程序詳細信息。
  3. 在我的項目上點擊F5,給它一個清理並通過Android虛擬設備運行。

Wola!作品像一個美女

  1. 關閉了AVD,插在我的SGS3,擊中運行。
  2. 點擊登錄,並顯示「cordovaExample想訪問你的公衆形象,好友列表和電子郵件地址」
  3. 點擊「確定」
  4. 應用崩潰,死了,炸燬了小毛驢。

任何人都可以告訴我該怎麼做我做錯了。我知道SSO有問題,這就是爲什麼它在AVD上工作,因爲facebook沒有安裝在它上面,但我創建了愚蠢的哈希鍵!

任何人,我求求你,Facebook先生如果你在外面,我做錯了什麼!

謝謝!

編輯

忘了補充日誌:

D/PluginManager(16868):  init() 
D/CordovaWebView(16868): >>> loadUrlNow() 
D/DroidGap(16868):   Incoming Result 
D/DroidGap(16868):   Request code = 64206 
D/DroidGap(16868):   We have a callback to send this result to 
D/AndroidRuntime(16868): Shutting down VM 
W/dalvikvm(16868):   threadid=1: thread exiting with uncaught exception (group=0x4111e2a0) 
E/AndroidRuntime(16868): FATAL EXCEPTION: main 
E/AndroidRuntime(16868): java.lang.RuntimeException: Unable to resume activity {org.apache.cordova.main/org.apache.cordova.main.main}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=64206, result=0, data=Intent { (has extras) }} to activity {org.apache.cordova.main/org.apache.cordova.main.main}: java.lang.NullPointerException 
E/AndroidRuntime(16868): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2616) 
E/AndroidRuntime(16868): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2644) 
E/AndroidRuntime(16868): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2130) 
E/AndroidRuntime(16868): at android.app.ActivityThread.access$600(ActivityThread.java:140) 
E/AndroidRuntime(16868): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) 
E/AndroidRuntime(16868): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(16868): at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(16868): at android.app.ActivityThread.main(ActivityThread.java:4898) 
E/AndroidRuntime(16868): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(16868): at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime(16868): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
E/AndroidRuntime(16868): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
E/AndroidRuntime(16868): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(16868): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=64206, result=0, data=Intent { (has extras) }} to activity {org.apache.cordova.main/org.apache.cordova.main.main}: java.lang.NullPointerException 
E/AndroidRuntime(16868): at android.app.ActivityThread.deliverResults(ActivityThread.java:3182) 
E/AndroidRuntime(16868): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2603) 
E/AndroidRuntime(16868): ... 12 more 
E/AndroidRuntime(16868): Caused by: java.lang.NullPointerException 
E/AndroidRuntime(16868): at org.apache.cordova.DroidGap.onActivityResult(DroidGap.java:849) 
E/AndroidRuntime(16868): at android.app.Activity.dispatchActivityResult(Activity.java:5390) 
E/AndroidRuntime(16868): at android.app.ActivityThread.deliverResults(ActivityThread.java:3178) 
E/AndroidRuntime(16868): ... 13 more 
I/GATE(16868):    <GATE-M>DEV_ACTION_COMPLETED</GATE-M> 

回答

0

正如我理解,你只生成的密鑰工作的虛擬設備上。要在真實手機上運行您的應用程序,您必須將您的應用程序上傳到「谷歌播放」,您可以在其中提供經過簽名的代碼,使您可以通過真實手機將應用程序連接到Facebook。

我希望我一直有幫助。

+0

我已經導出爲apk,直接從我的機器上傳到手機並重新生成密鑰,但我有同樣的問題 –

0

你可以使用這個程序得到你的「標誌應用程序密鑰」http://www.easyfacebookandroidsdk.com/download/keyhash.zip

在你的android開發環境中安裝這個程序並用模擬器運行應用程序。你會得到一個你可以插入到「hash key」facebook應用程序的代碼。

我希望我一直有幫助。

相關問題