SSO facebook在登录时连接插件失败 - cordova

时间:2013-03-31 22:23:00

标签: android facebook cordova

好吧,我已经搜过了网络的四个角落......两次......然后我已经找到并回答了一些我觉得必须是小便的东西,但我尝试过没有尝试过。这个问题似乎已经在互联网上出现了,但应用程序仍在使用faceboook集成开发,所以为什么我找不到翻转的答案!!

无论如何,我要写下我所做的一切。

  1. 下载最新的cordova并设置项目。
  2. 下载了cordova / phonegap的facebook连接插件,并将hackbook添加到我的项目中
  3. 下载最新的Java SDK
  4. 设置单独的Facebook SDK项目
  5. 将单独的项目包含在我的项目中,该项目需要facebook login auth。
  6. 添加了ConnectPlugin.java文件并在config.xml插件项目中包含了插件调用。
  7. 加入Facebook,https://developers.facebook.com/apps/为自己设置应用。
  8. 给它一个临时名字,并掀起一些基本信息。
  9. 转到Native Android App,输入包名(org.apache.cordova.name)和类(org.apache.cordova.name.main),并确保“facebook login”设置为启用。< / LI>
  10. 下载了openSSL(每个人都说下载的那个(我在win8上))
  11. 打开命令提示符,导航到c:\ Program Files \ Java \ jdk1.7.0_17 \ bin并运行
  12. keytool -exportcert -alias androiddebugkey -keystore c:\ android \ debug.keystore | C:\ OpenSSL \ bin \ openssl sha1 -binary | C:\ OpenSSL \ bin \ openssl base64

    我在android sdk文件夹中复制了调试密钥库,并将其设置为较短的路径dir,因为我很懒。

    1. 在被要求时输入了我的密码。
    2. 复制了像 Bmce + 9aHdOoVtE7fS3F07tfj7Bc = 这样的密钥库,并在facebook android native app details中的应用程序详细信息中输入。
    3. 点击我的项目中的F5,给它打扫干净,然后通过Android虚拟设备运行。
    4. 瓦沃里亚!像美女一样工作

      1. 关闭AVD,插入我的SGS3,点击跑。
      2. 点击登录,然后显示“cordovaExample想要访问您的公开个人资料,朋友列表和电子邮件地址”
      3. 点击“确定”
      4. 该应用程序崩溃,死亡并炸毁了一头小驴。
      5. 任何人都可以告诉我,我到底做错了什么。我知道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>
        

3 个答案:

答案 0 :(得分:1)

好吧,如果我从未......在这里找到答案:java.lang.RuntimeException: Failure delivering result ResultInfo while logging using Facebook

似乎我在开发者选项中检查了“不要保持活动”oooobbbvioulsy会导致这个....

答案 1 :(得分:0)

据我了解,您生成的密钥仅适用于虚拟设备。要在真实手机中运行您的应用程序,您必须将您的应用程序上传到“google play”,在那里您提供一个签名代码,允许您通过真实手机将应用程序连接到Facebook。

我希望我一直很有帮助。

答案 2 :(得分:0)

您可以使用此程序http://www.easyfacebookandroidsdk.com/download/keyhash.zip

获取“签名应用密钥”

在Android开发环境中安装此程序,并使用模拟器运行该应用程序。您将获得一个可以插入“哈希键”facebook应用程序的代码。

我希望我一直很有帮助。