问题 “cordova platform add android”因意外错误而失败


我正在尝试在Ubuntu 13.04上安装Phonegap,我已经安装了包含所有可用软件包的Android SDK,但运行以下命令:

cordova platform add android

失败并出现意外错误:

[Error: An error occured during creation of android sub-project. An unexpected error occurred: "$ANDROID_BIN" create project --target $TARGET --path "$PROJECT_PATH" --package $PACKAGE --activity $ACTIVITY &>/dev/null exited with 1
Deleting project...

我已经为Android设置了PATH变量(工具/平台工具),并安装了java和ant。

为什么会这样?如何获得更详细的错误消息?


4268
2017-07-13 17:36


起源

可能重复 PhoneGap 2.5.0问题 - Ryan Weir


答案:


你试过用sudo运行命令吗? 它可能是一个权限问题。

如果仍然无法正常工作,请尝试使用详细模式运行它,即sudo -d cordova ...

如果这是由活动名称空格引起的,请参阅此答案的评论。

报告中存在一个问题 https://issues.apache.org/jira/browse/CB-4198,我为此发送了拉取请求以删除空格 https://github.com/phonegap/phonegap/pull/39


8
2017-07-14 04:55



我试过sudo,没有帮助。但是来自phonegap包(lib / android / bin / create)的创建工具可以工作,所以我现在可以使用html / js应用程序。谢谢Ryan和José的答案。 - Bastian Seeleib
如果您使用的是hello world示例,我认为那里存在问题。我只是试图重现,并发现它尝试使用Hello World创建一个活动作为其名称...这是我必须使它工作的最后一个错误。 (在权限问题之后)我做的是将脚本更改为使用HelloWorld作为活动名称。 - José Lecaros
你是对的,没有空白,愚蠢,愚蠢的事情。 - Bastian Seeleib
白色空间解决方案+1,为我工作。 - Ska
对问题或拉取请求进行评论或两者都是一个好主意,因此修复包含在内。 - José Lecaros


正如@José所说,“hello”示例不起作用,因为不允许使用空格。 将其更改为“HelloWorld”解决了这个问题。


4
2017-07-15 11:52





删除config.xml中名称标记之间的空格

MyAppName <name>


2
2017-09-24 10:08



谢谢你,其他答案说要删除空白,只有你自己说要在哪里做 - Rohit Chatterjee


在我的例子中,使用debian wheezy,例子来自: http://docs.phonegap.com/en/edge/guide_cli_index.md.html#The%20Command-line%20Interface 不适用于此错误:

[错误:在创建android子项目期间发生错误。发生意外错误:“$ ANDROID_BIN”创建项目--target $ TARGET --path“$ PROJECT_PATH” - package $ PACKAGE --activity $ ACTIVITY&> / dev / null退出1   删除项目......   ]

添加$ JAVA_HOME(Java sun,openjdk无效)和$ PATH andriod sdk路径 .../sdk/platform-tools:../sdk/tool

在我的案例中的解决方案是项目名称:

这个例子不起作用:

cordova创建HelloWorld com.example.hello“Hello World”

这适用:

cordova创建HelloWorld com.example.hello HelloWorld


1
2017-07-25 09:12



这对我有用,谢谢! - smets.kevin


请确保您的包和项目名称正确无误 com.mycompanyname.myappname 格式没有任何数字或破折号。

这是PhoneGap正在跟踪的问题


0
2017-07-13 17:56



包名是正确的,我使用的是hello world示例:cordova create hello com.example.hello“Hello World”。还要感谢github链接,但似乎他们找不到解决方案。 - Bastian Seeleib


如果用textEdit打开创建文件(phonegap-2.7.0 / lib / android / bin / create),则会列出一行

ANDROID_BIN=”${ANDROID_BIN:=$( which android )}”

“哪个android”是问题的原因

如果将此行替换为Android工具(SDK)的完整路径,则应解决此问题。它看起来像这样:

ANDROID_BIN=/Users/cswjs/Documents/Dev/adt-bundle/sdk/tools/android

或者尝试使用修改〜/ .bash_profile open ~/.bash_profile 完全PATH

export PATH=${PATH}:/Users/cswjs/Documents/Dev/adt-bundle/sdk/platform-tools:/Users/cswjs/Documents/Dev/adt-bundle/sdk/tools

并使用 cordova create foo com.example.foo foo 创建名为foo的新项目。确保项目名称应相同。

希望这可以帮助别人!


0
2017-07-24 04:48





在我的情况下,在创建脚本中有很多地方你需要删除> null来查看真实的日志。我终于解决了我的问题 sudo chown -R sachinsharma~ / .cordova


0
2017-08-04 06:04