我已经尝试了一切,但似乎无法让它发挥作用。我做了以下事情:
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中仍然没有骰子(我认为这是使用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>
答案 0 :(得分:2)
好的,这似乎是个问题。有两个问题。第一个是Windows上的最大路径大小问题。问题是插件使用应用程序ID的一部分来创建文件夹,默认情况下VS使用相当长的随机标识符,这会加剧问题。
要解决:
转到项目文件夹并重新添加android平台。从命令行:
cordova platform remove android
cordova platform add android
然后剩下的第二个问题是“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”