无法使用 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 的详细输出:
以及我遇到的一些错误的重点
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 默认使用相当长的随机标识符,因此这加剧了问题。
要解决:
- 将项目的 ID 更新为较短的内容 (com.myproject.short)
- 将项目移动到驱动器的根目录
进入项目文件夹,重新添加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"
我已经尝试了所有方法,但似乎无法正常工作。我做了以下事情:
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 的详细输出:
以及我遇到的一些错误的重点
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 默认使用相当长的随机标识符,因此这加剧了问题。
要解决:
- 将项目的 ID 更新为较短的内容 (com.myproject.short)
- 将项目移动到驱动器的根目录
进入项目文件夹,重新添加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"