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

带有 xcode 5.1 的 cordova 3.4 不会使用最新的文件传输插件构建

使用cordova获取facebook用户资料