使用facebook connect plugin

时间:2015-05-21 10:24:07

标签: facebook cordova cordova-plugins visual-studio-2015 visual-studio-cordova

我已经尝试了一切,但似乎无法让它发挥作用。我做了以下事情:

1.Remove the plugins with the variables via the config designer.
2.Update to Cordova 5.0.0 via the config designer (Platforms > Cordova CLI)
3.From the command line: 1.Go to your project directory.
2.Type the following substituting the plugin name for the plugin you wish to add:
3.npm install -g cordova
4.cordova plugin add nl.x-services.plugins.launchmyapp --variable URL_SCHEME=myscheme

但我仍然无法建立。以下是MSBUILD的详细输出:

http://pastebin.com/7enSzCxs

我得到的一些错误的亮点

1>  BUILD FAILED
1>  C:\Users\Adam\AppData\Local\Android\android-sdk\tools\ant\build.xml:601: The following error occurred while executing this line:
1>  F:\GIT\CordovaFb\BlankCordovaApp1\fbtest\platforms\android\com.phonegap.plugins.facebookconnect\myapp2568ddfac877478fb806edc911cff37e-FacebookLib\custom_rules.xml:4: F:\GIT\CordovaFb\BlankCordovaApp1\fbtest\platforms\android\com.phonegap.plugins.facebookconnect\myapp2568ddfac877478fb806edc911cff37e-FacebookLib\ant-build does not exist.

1>  BUILD FAILED
1>  C:\Users\Adam\AppData\Local\Android\android-sdk\tools\ant\build.xml:470: The following error occurred while executing this line:
1>  C:\Users\Adam\AppData\Local\Android\android-sdk\tools\ant\build.xml:441: Unable to delete directory F:\GIT\CordovaFb\BlankCordovaApp1\fbtest\platforms\android\com.phonegap.plugins.facebookconnect\myapp2568ddfac877478fb806edc911cff37e-FacebookLib\bin

最后

1>
1>  F:\GIT\CordovaFb\BlankCordovaApp1\fbtest\platforms\android\cordova\node_modules\q\q.js:126
1>                      throw e;
1>                            ^
1>  Error code 1 for command: cmd with args: /s /c "ant debug -f F:\GIT\CordovaFb\BlankCordovaApp1\fbtest\platforms\android\build.xml"
1>  Command finished with error code 8: F:\GIT\CordovaFb\BlankCordovaApp1\fbtest\platforms\android\cordova\build.bat --debug,--ant,
1>MDAVSCLI : error : F:\GIT\CordovaFb\BlankCordovaApp1\fbtest\platforms\android\cordova\build.bat: Command failed with exit code 8
1>Done executing task "MdaVsCli" -- FAILED.
1>Done building target "BuildMDA" in project "fbtest.jsproj" -- FAILED.
1>Build FAILED.

有什么想法吗?使用全新安装的VS2015和cordova工具,尝试为Android构建。

编辑:

所以在接受了下面的Kamil Pajdzik的建议之后,我使用了build.bat来编译它,发现我的路径有些问题很长。我映射了一个驱动器以减少长度,它现在将从build.bat构建AOK。

虽然在Visual Studio中仍然没有骰子(我认为这是使用gradle和vs使用ant的build.bat之间的差异)。

我现在唯一的错误是:

1>  -code-gen:
1>  [mergemanifest] Merging AndroidManifest files into one.
1>  [mergemanifest] Manifest merger disabled. Using project manifest only.
1>       [echo] Handling aidl files...
1>       [aidl] No AIDL files to compile.
1>       [echo] ----------
1>       [echo] Handling RenderScript files...
1>       [echo] ----------
1>       [echo] Handling Resources...
1>       [aapt] Generating resource IDs...
1>       [aapt] Z:\fbtest\platforms\android\bin\AndroidManifest.xml:14: error: Error: No resource found that matches the given name (at 'value' with value '@string/fb_app_id').
1>       [aapt]
1>       [aapt] Z:\fbtest\platforms\android\bin\AndroidManifest.xml:15: error: Error: No resource found that matches the given name (at 'label' with value '@string/fb_app_name').
1>       [aapt]
1>
1>  BUILD FAILED
1>  C:\Users\Adam\AppData\Local\Android\android-sdk\tools\ant\build.xml:653: The following error occurred while executing this line:
1>  C:\Users\Adam\AppData\Local\Android\android-sdk\tools\ant\build.xml:698: null returned: 1
1>

5 个答案:

答案 0 :(得分:2)

好的,这似乎是个问题。有两个问题。第一个是Windows上的最大路径大小问题。问题是插件使用应用程序ID的一部分来创建文件夹,默认情况下VS使用相当长的随机标识符,这会加剧问题。

要解决:

  1. 将项目的ID更新为简短(com.myproject.short)
  2. 将项目移至驱动器的根目录
  3. 转到项目文件夹并重新添加android平台。从命令行:

    cordova platform remove android
    cordova platform add android
    
  4. 然后剩下的第二个问题是“Ant”构建似乎缺少一个可能是bug的文件夹。如果您在该位置添加“ant-build”文件夹,则会抱怨构建成功。

    此外 - 请确保您的签到中包含plugins / fetch.json,因为这是存储插件变量的位置。如果删除该文件,则需要再次删除并重新添加插件。从您的更新看起来,VS仍然设置为使用Cordova 4.3.0和/或plugins / fetch.json不包含您的插件变量。如果使用Cordova 5.0.0添加插件,您应该会看到类似的内容:

    {
        "com.phonegap.plugins.facebookconnect": {
            "source": {
                "type": "registry",
                "id": "com.phonegap.plugins.facebookconnect"
            },
            "is_top_level": true,
            "variables": {
                "APP_ID": "123",
                "APP_NAME": "nbaer"
            }
        }
    }
    

    “变量”部分可能缺失。

答案 1 :(得分:1)

尝试从命令行运行F:\GIT\CordovaFb\BlankCordovaApp1\fbtest\platforms\android\cordova\build.bat。它通常会提供更多信息。

Cordova 5.0.0在版本22中需要Android SDK。您可以通过SDK管理器检查是否已安装。

答案 2 :(得分:0)

这个特殊的插件似乎对Cordova 5.0.0有一些挑战。 Android在此版本中经历了重大更改,可能会导致问题。

https://github.com/Wizcorp/phonegap-facebook-plugin/issues/1010

如果使用纯Cordova命令行界面项目使用Ant或Gradle构建,我会看到失败。可能需要一个插件修复才能解决问题。我建议在此缺陷中添加注释,以帮助插件作者解决问题。

答案 3 :(得分:0)

感谢Chucks的帮助,我设法让一个构建工作。它确实是路径长度超过260个字符的组合(我通过将我的解决方案目录映射到驱动器来解决)和几个未创建的文件夹。

他们在我的情况下:

F:\Git\CordovaFb\FBTest\platforms\android\com.phonegap.plugins.facebookconnect\myapp7a29c6c80cee4b2aa0dc8a70dc57527d-FacebookLib\bin\classes

F:\Git\CordovaFb\FBTest\platforms\android\com.phonegap.plugins.facebookconnect\myapp7a29c6c80cee4b2aa0dc8a70dc57527d-FacebookLib\ant-build

我似乎必须不时手动重新创建这些内容,因为它们会在某些版本中被删除...

所以整个过程如下(对于有相同问题的其他人)

1)以尽可能短的路径创建解决方案(如果需要,映射驱动器)

2)将您的cordova项目添加到解决方案中,双击config.xml,转到平台并将CLI版本更改为5.0.0

3)在解决方案根

中启动命令提示符

4)输入以下cordova plugin add https://github.com/Wizcorp/phonegap-facebook-plugin.git --variable APP_ID="00000000" --variable APP_NAME="My App"

5)完成后你会在插件目录中插入插件,而fetch.json文件应该包含你为appid和appname输入的变量

6)做一个完整的构建,你会得到一些错误(退出代码8)

7)手动创建以下内容:

[Solution Route]\platforms\android\com.phonegap.plugins.facebookconnect\myapp7a29c6c80cee4b2aa0dc8a70dc57527d-FacebookLib\bin\classes`

[Solution Route]\platforms\android\com.phonegap.plugins.facebookconnect\myapp7a29c6c80cee4b2aa0dc8a70dc57527d-FacebookLib\bin\classes`

8)你的构建应该成功!定期检查这些路径是否仍然存在。

这应该可以帮助你实现VS的cordova工具的下一个版本(如果他们修复它)

答案 4 :(得分:0)

平台\机器人\的AndroidManifest.xml

将android:minSdkVersion =“14”更改为android:minSdkVersion =“15”