无法使用 facebook 连接插件在 VS2015 中构建 Cordova 项目

Cannot get Cordova project building in VS2015 with the facebook connect plugin

我已经尝试了所有方法,但似乎无法正常工作。我做了以下事情:

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 中仍然没有骰子(我假设这是 build.bat 使用 gradle 与使用 ant 之间的区别)。

我现在唯一的错误是:

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>

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

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

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

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

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

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

要解决:

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

    cordova platform remove android
    cordova platform add android
    

剩下的第二个问题是 "Ant" 构建似乎缺少一个文件夹,这可能是一个错误。如果您在它抱怨构建成功的位置添加 "ant-build" 文件夹。

此外 - 请确保 plugins/fetch.json 包含在您的签到中,因为这是存储您的插件变量的地方。如果该文件被删除,您将需要删除并重新添加该插件。从你的更新来看,VS 仍然设置为使用 Cordova 4.3.0 and/or 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"
        }
    }
}

可能缺少 "variables" 部分。

感谢 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 工具版本发布之前,这应该可以帮助您(如果他们修复了它)

platforms\android\AndroidManifest.xml

只需将 android:minSdkVersion="14" 更改为 android:minSdkVersion="15"