好的,我已经搜索了网的所有四个角落......两次......并且还没有找到并回答一些我认为必须是小便才能弄清楚但我没有尝试过的东西。这个问题似乎在整个互联网上都出现了,但应用程序仍在与 Facebook 集成开发中,所以为什么我找不到一个翻转的答案!
不管怎样,我要把我所做的一切都写下来。
- 下载了最新的cordova并设置了一个项目。
- 下载了 cordova/phonegap 的 facebook connect 插件,并在我的项目中添加了 hackbook
- 下载了最新的 Java SDK
- 设置一个单独的 Facebook SDK 项目
- 将单独的项目包含到我的需要 facebook 登录身份验证的项目中。
- 添加 ConnectPlugin.java 文件并将插件调用包含在 config.xml 插件项目中。
- 登录 facebook,https: //developers.facebook.com/apps/ 为自己设置了一个应用程序。
- 给它一个临时名称,并输入一些基本信息。
- 进入 Native Android App,输入包名(org.apache.cordova.name)和类(org.apache.cordova.name.main),并确保“facebook登录”设置为启用。
- 下载了openSSL(大家都说要下载的那个(我在win8上))
- 打开命令提示符,导航到 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 文件夹中复制了调试密钥库,并将其放在一个较短的路径目录中,因为我很懒。
- 在被要求时输入了我的密码。
- 复制了类似Bmce+9aHdOoVtE7fS3F07tfj7Bc=的密钥库,并在 facebook android 本机应用程序详细信息中输入了应用程序详细信息。
- 在我的项目上按 F5,清理它并通过 Android 虚拟设备运行它。
哇!像美女一样工作
- 关闭 AVD,插入我的 SGS3,点击运行。
- 点击登录,并显示“cordovaExample 想要访问您的公开个人资料、好友列表和电子邮件地址”
- 点击“确定”
- 该应用程序崩溃、死机并炸毁了一头小驴。
谁能告诉我到底我做错了什么。我知道 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>