0

好的,我已经搜索了网的所有四个角落......两次......并且还没有找到并回答一些我认为必须是小便才能弄清楚但我没有尝试过的东西。这个问题似乎在整个互联网上都出现了,但应用程序仍在与 Facebook 集成开发中,所以为什么我找不到一个翻转的答案!

不管怎样,我要把我所做的一切都写下来。

  1. 下载了最新的cordova并设置了一个项目。
  2. 下载了 cordova/phonegap 的 facebook connect 插件,并在我的项目中添加了 hackbook
  3. 下载了最新的 Java SDK
  4. 设置一个单独的 Facebook SDK 项目
  5. 将单独的项目包含到我的需要 facebook 登录身份验证的项目中。
  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登录”设置为启用。
  10. 下载了openSSL(大家都说要下载的那个(我在win8上))
  11. 打开命令提示符,导航到 c:\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 文件夹中复制了调试密钥库,并将其放在一个较短的路径目录中,因为我很懒。

  1. 在被要求时输入了我的密码。
  2. 复制了类似Bmce+9aHdOoVtE7fS3F07tfj7Bc=的密钥库,并在 facebook android 本机应用程序详细信息中输入了应用程序详细信息。
  3. 在我的项目上按 F5,清理它并通过 Android 虚拟设备运行它。

哇!像美女一样工作

  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>
4

3 回答 3

1

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

似乎我在开发人员选项中选中了“不保留活动”,这 oooobbbvioulsy 会导致这种情况....

于 2013-04-01T15:31:06.633 回答
0

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

我希望我对您有所帮助。

于 2013-03-31T23:29:53.780 回答
0

您可以使用此程序http://www.easyfacebookandroidsdk.com/download/keyhash.zip获取您的“签名应用程序密钥”

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

我希望我对您有所帮助。

于 2013-04-01T23:20:56.180 回答