我正在尝试使用com.phonegap.plugins.facebookconnect
插件。要安装它,我必须提供两个变量,如:
cordova plugin add com.phonegap.plugins.facebookconnect --variable APP_ID="<app_id>" --variable APP_NAME="<app_name>"
这样可行,但由于this issue,构建失败。
BUILD FAILED
/Applications/Android Studio.app/sdk/tools/ant/build.xml:720: The following error occurred while executing this line:
/Applications/Android Studio.app/sdk/tools/ant/build.xml:734: Compile failed; see the compiler error output for details.
Total time: 6 seconds
.../platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
Error code 1 for command: ant with args: debug,-f,.../platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: .../platforms/android/cordova/run: Command failed with exit code 8
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:755:16)
at Process.ChildProcess._handle.onexit (child_process.js:822:5)
解决上述问题的传统方法是删除所有平台并重新添加它们。问题是,当添加平台时,他们会尝试为自己安装插件,但不要传入插件需要正确安装的变量,导致:
Failed to install 'com.phonegap.plugins.facebookconnect':Error: Variable(s) missing: APP_ID, APP_NAME
at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:301:23
at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:798:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:827:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13)
at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:574:44
at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17)
at process._tickCallback (node.js:419:13)
Error: Variable(s) missing: APP_ID, APP_NAME
at /usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/plugman/install.js:301:23
at _fulfilled (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:798:54)
at self.promiseDispatch.done (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:827:30)
at Promise.promise.promiseDispatch (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:760:13)
at /usr/local/lib/node_modules/cordova/node_modules/q/q.js:574:44
at flush (/usr/local/lib/node_modules/cordova/node_modules/q/q.js:108:17)
at process._tickCallback (node.js:419:13)
所以我得到一个正确安装的插件,但是构建失败,或者插件安装不正确以及传递构建。
这使得无法使用facebookconnect插件,因为当然,插件需要正确安装并且构建需要通过。
对此有什么快速解决方案吗?
更多信息
$ cordova -v
3.5.0-0.2.7
相关问题
答案 0 :(得分:1)
不要将facebook android库包含在您的cordova项目中。使用这些库而不是那个。
https://github.com/phonegap-build/FacebookConnect/tree/master/src/android/facebook
参考:http://blog.revivalx.com/2014/05/20/integration-cordova-facebook-connect-plugin-for-android/
答案 1 :(得分:0)
为了避免科尔多瓦问题,请不要尝试使用cordova。只需使用cordova创建项目,添加平台,并添加插件(按此顺序)。然后,使用xcode或android studio或visual studio来构建和运行。这就是我解决问题的方法。
另外,请勿在注册表中添加插件。下载zip文件,解压缩,然后在本地添加。感谢@tapmonkey提供以下链接,解释了这一点:
答案 2 :(得分:0)
你可以使用来自cordova插件注册表的facebook插件。这里是链接(http://plugins.cordova.io/#/package/com.ccsoft.plugin.cordovafacebook).It支持3以上的cordova版本,也需要android facebbok SDK。你可以从这里下载(https://developers.facebook.com/docs/android)。
答案 3 :(得分:0)
只需使用 sudo
运行相同的命令,因为它需要root访问权限。
sudo cordova plugin add com.phonegap.plugins.facebookconnect --variable APP_ID="<app_id>" --variable APP_NAME="<app_name>"
如果它会询问,请输入password
,您就可以放弃。