Cordova 3.4 Facebook 连接,添加库
Posted
技术标签:
【中文标题】Cordova 3.4 Facebook 连接,添加库【英文标题】:Cordova 3.4 Facebook connect, add Library 【发布时间】:2014-04-07 12:56:37 【问题描述】:我更新到 Cordova 3.4 并想使用最新版本的 facebook connect (https://github.com/phonegap/phonegap-facebook-plugin) 插件。我按照那里的步骤操作。
但是我不使用eclipse开发。所以我需要通过命令行添加 Facebook 库。
我按照of Abdullah in this post 的步骤操作。
我的文件夹结构:
+ platforms
+ android
...
+ plugins
+ ...
+ facebook-android-sdk-3.8.0
+ facebook
...
我在platforms/android/
跑了这条命令:
android update project --target 3 --path . --library ../../facebook-android-sdk-3.8.0/facebook/
但现在我遇到了以下错误:
facebook-android-sdk-3.8.0/facebook/build.xml:46: sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var
在使用cordova build android
构建期间,您知道我该如何解决这个问题吗?
我的platforms/android/project.properties
看起来像这样:
...
# Project target.
target=android-18
android.library.reference.1=CordovaLib
android.library.reference.2=../../facebook-android-sdk-3.8.0/facebook/
我的platforms/android/local.properties
看起来像这样:
...
# header note.
sdk.dir=/Users/<username>/Development/adt-bundle-mac-x86_64/sdk
这也是正确的。
cordova build android
的完整输出:
cordova build android
[ReferenceError: a is not defined]
Running command: /Users/<username>/App_Entwicklung/20/<application>/platforms/android/cordova/build args=[]
Buildfile:/Users/<username>/App_Entwicklung/20/<application>/platforms/android/build.xml
-set-mode-check:
-set-debug-files:
-check-env:
[checkenv] Android SDK Tools Revision 22.6.2
[checkenv] Installed at /Users/<username>/Development/adt-bundle-mac-x86_64/sdk
-setup:
[echo] Project Name: <application>20
[gettype] Project Type: Application
-set-debug-mode:
-debug-obfuscation-check:
-pre-build:
-build-setup:
[getbuildtools] Using latest Build Tools: 19.0.3
[echo] Resolving Build Target for <application>20...
[gettarget] Project Target: Android 4.3
[gettarget] API level: 18
[echo] ----------
[echo] Creating output directories if needed...
[echo] ----------
[echo] Resolving Dependencies for <application>20...
[dependency] Library dependencies:
[dependency]
[dependency] ------------------
[dependency] Ordered libraries:
[dependency]
[dependency] ------------------
[echo] ----------
[echo] Building Libraries with 'debug'...
BUILD FAILED
/Users/<username>/Development/adt-bundle-mac-x86_64/sdk/tools/ant/build.xml:601: The following error occurred while executing this line:
/Users/<username>/App_Entwicklung/20/<application>/facebook-android-sdk-3.8.0/facebook/build.xml:46: sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var
Total time: 0 seconds
Error code 1 for command: ant with args: debug,-f,/Users/<username>/App_Entwicklung/20/<application>/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /Users/<username>/App_Entwicklung/20/<application>/platforms/android/cordova/build: Command failed with exit code 2
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/src/superspawn.js:112:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:743:16)
at Process.ChildProcess._handle.onexit (child_process.js:810:5)
【问题讨论】:
你为什么不遵循官方的phonegap网站指南??? github.com/Wizcorp/phonegap-facebook-plugin/blob/master/… 实际上,我自己在本文档中添加了 *Setup without Eclipse (just CLI) * 部分。所以我为它提供了解决方案。我不想为此使用 Eclipse,因为它不是我的构建环境的真正解决方案。 (实际上,这个问题已经 7 个月大了;)) 【参考方案1】:问题不在您的实际项目中,而是在 android Facebook SDK 中,因为 FacebookSDK android 项目无法找到 Android SDK。
修复它:
导航到您的 FacebookSDK 文件夹(对我来说,这是 facebook-android-sdk-3.8.0/facebook)并查找 project.properties 文件。
编辑此文件并指定 sdk 的路径(就像您为核心项目所做的那样)。 sdk.dir=/Users//开发/adt-bundle-mac-x86_64/sdk
保存并重建。
【讨论】:
我试过你说的,但仍然报同样的错误。修改plugins/..
和 platform/android/..
【参考方案2】:
我写了一个指南,如何在没有 Eclipse 的情况下设置 Facebook 插件。它已经是存储库安装指南的一部分。查看:https://github.com/Wizcorp/phonegap-facebook-plugin/blob/master/platforms/android/README.md
【讨论】:
【参考方案3】:导航到您的 facebook-sdk-3.8.0/facebook 文件夹并运行以下命令
android update project -p .
(把点放在最后)
【讨论】:
执行此操作后出现此错误:错误:项目没有设置目标或目标无效。请为“android.bat update”命令提供一个--target。似乎有子项目。如果你想更新它们,请使用 --subprojects 参数。 通过添加 --target 来修复它 您在 facebook-sdk-3.x.0/facebook 文件夹中的哪个位置?您在 --target 中指定了什么? Lucas,为此我做了 --target 3。但是,我必须恢复到 FacebookConnect 的 0.4.0 才能让一切正常工作。 t.co/hJYZonK385 非常好的指南。但是这个插件很糟糕。我使用这个,我很高兴:github.com/ccsoft/cordova-facebook。您建议的 Christophe Coenraets 不够好,因为它只是一个弹出窗口,这意味着它不会从本机 FB 应用程序获取会话,因此即使用户拥有 fb 应用程序,用户也必须始终输入登录名并通过已安装并记录。以上是关于Cordova 3.4 Facebook 连接,添加库的主要内容,如果未能解决你的问题,请参考以下文章
Cordova / Phonegap 应用程序 - 更改 Facebook 帐户
Cordova 3.4 FileReader 不工作(没有 onloadend)
构建 Cordova 3.4 应用程序时架构 i386 的未定义符号
requestFileSystem 永远不会在 iOS 上返回 Cordova 3.4