Cordova:适用于Android Build Error的Facebook插件

时间:2014-04-04 18:33:42

标签: javascript android facebook cordova

我使用Cordova 3.4和Android Cordova Facebook Plugin在Android上构建示例Cordova Facebook App。

以下是我所做的步骤:

1创建一个空白的Cordova应用程序

2编辑Test / config.xml并插入

 <feature name="org.apache.cordova.facebook.Connect">
     <param name="android-package" value="org.apache.cordova.facebook.ConnectPlugin" />
 </feature>

3安装适用于Android的Facebook SDK和Facebook APK

4从Cordova Facebook插件文件夹中复制来自src / android / into的ConnectPlugin.java 测试/平台/机器人/ SRC /组织/阿帕奇/科尔多瓦/实/

5从Cordova Facebook Plugin文件夹中将www / cdv-plugin-fb-connect.js和www / facebook-js-sdk.js复制到您的应用程序的Test / www文件夹中

6转到Test /并执行cordova build

最后一步输出以下错误:

BUILD FAILED
/Applications/adt-bundle-mac-x86_64-20140321/sdk/tools/ant/build.xml:601: The following error occurred while executing this line:
/Users/mg/Documents/Android/Plugins/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/mg/Documents/Android/Test/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /Users/mg/Documents/Android/Test/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)

如何解决此问题?

2 个答案:

答案 0 :(得分:2)

您的问题的解决方案就在这一行:

/Users/mg/Documents/Android/Plugins/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

你的facebook SDK没有找到android SDK目录。所以你需要运行:

android update project --path /Users/mg/Documents/Android/Plugins/facebook-android-sdk-3.8.0/facebook

再试一次。

答案 1 :(得分:1)

我遇到了同样的问题,我在这里做了什么:

在SDK facebook文件夹中,创建local.properties文件并输入您的路径:

sdk.dir=/my/path/to/adt-bundle-linux-x86_64-20140702/sdk

您可以从主项目的local.properties进行复制。

现在,如果想使用cordova cli和eclipse,你需要知道adt build和ant build是不同的,你可以在这里看到https://stackoverflow.com/a/19746506/1833734。所以,这里有诀窍:

如果你想使用ant(cordova console):

  1. 禁用Eclipse自动构建(在项目菜单内)
  2. 转到主项目文件夹(在控制台中),然后键入:ant clean。您的主要项目是这样的:/path/to/my/cordova/project/platforms/android
  3. 现在使用cordova runcordova build
  4. 等命令

    PS。检查主项目的Eclipse中的属性,facebook插件添加facebook sdk库,在我的情况下路径是错误的,所以我修复了添加自己的路径。这可以在eclipse和cordova-cli中产生中断。

    如果您需要更改为eclipse,则需要执行此操作:

    1. 项目 - &gt;清理(清理所有项目,facebook sdk,主项目和cordova lib)
    2. 项目 - &gt;构建所有
    3. 运行!
    4. 所以,你需要使用这个步骤,你需要将eclipse改为cordova-cli,反之亦然。

      最后提示:使用cordova cli后,不要忘记刷新(f5)eclipse项目。