【问题标题】:Cordova 2.1.0 (PhoneGap) create script for Android says "Project already exists" or "An error occurred. Deleting project"Cordova 2.1.0 (PhoneGap) 为 Android 创建脚本说“项目已经存在”或“发生错误。删除项目”
【发布时间】:2012-11-08 16:00:12
【问题描述】:

我正在尝试使用 Cordova 2.2.0 (PhoneGap) 在 Windows 上创建一个 Android 项目。根据这个blog post,这个命令应该可以工作 -

create <project_folder_path> <package_name> <project_name>

但我收到一条消息“项目已经存在!”。我使用同一台 PC 来创建、打包和提交 Android 应用程序,所以我知道我有 Java、Javac、Ant、Android 等。已安装。

我也曾在装有 Cordova 2.1.0 的 Mac 上尝试过此操作,但我收到消息“发生错误。正在删除项目..”

您能否建议可能导致此错误的原因以及可能的解决方法?

谢谢。

更新

这个问题似乎在 Cordova 2.2.0 中得到解决,但我还没有找到 2.1.0 的解决方法

【问题讨论】:

  • 指定不同的项目文件夹时会发生什么?
  • @vodich 我将在生成项目后使用 Eclipse 构建和打包应用程序 - 你是这个意思吗?
  • @SimonMacDonald 我遇到了同样的问题。当我使用相对路径(例如“../”)时,它显示“无法检索 commons-codec。请自行下载并放入 framework/libs 目录。此过程现在可能会失败。抱歉。C:\cordova -2.1.0\incubator-cordova-android\bin\create.js(97,7) Microsoft JScript 运行时错误:'NameSpace(...)' is null or not an object"
  • 很奇怪,获取 commons 编解码器包时遇到问题。该脚本可能正在寻找可能已从网站上删除的编解码器版本 1.6。打开create.js看看,你可能需要切换到1.7。
  • 是的,你是对的。它正在寻找 1.6 编解码器。 *create.bat line:96

标签: android cordova


【解决方案1】:

明确地说,您的目标项目路径应该是您想要创建项目的位置,然后最后一个目录将是您想要创建的什么。例如:

./create ./test2 com.mytest MyTest

在这种情况下,您希望在当前目录中的一个名为“test2”的新文件夹中创建一个项目,并且该文件夹尚未创建(它将在运行时创建)。

更新:如果您使用的是较新版本的 Cordova Edge 或更高版本,我强烈建议您在此处使用 Cordova CLI 实用程序:http://cordova.apache.org/docs/en/edge/guide_cli_index.md.html#The%20Command-Line%20Interface

【讨论】:

  • 您使用的是什么操作系统?我认为我的问题与 Windows 有关。使用相对路径时出现此错误“无法检索 commons-codec。请自行下载并放入 framework/libs 目录。此过程现在可能会失败。抱歉。C:\cordova-2.1.0\incubator -cordova-android\bin\create.js(97,7) Microsoft JScript 运行时错误:'NameSpace(...)' 为空或不是对象"
  • 我在 OSX 上。似乎您可能缺少一些 Apache 库。我知道 OSX apache 服务器是预装的,所以这可能是我从未经历过的原因。你安装了commons-codec吗?你可以在这里得到它:commons.apache.org/codec
  • 那行得通。谢谢!我认为值得将其添加到您的答案中。我刚刚下载了编解码器并将其放入文件夹incubator-cordova-android/frameworks/lib(编解码器下载:commons.apache.org/codec/download_codec.cgi)。有时它会显示错误消息但仍会创建项目 - 奇数 (o_O)
  • 我已将您对编解码器库的评论添加到您的答案中。谢谢。 :-)
【解决方案2】:

在创建新的 PhoneGap 项目时,我在 Windows 上也有同样的经历。然后我尝试了相对路径。对于我的情况,我想在 C:\phonegap_projects\ 父文件夹下创建项目,而我的 PhoneGap bin 在 C:\phonegap\cordova-2.7.0\android\ 父文件夹下文件夹。所以我尝试了,导航到 C:\phonegap\cordova-2.7.0\android\bin 目录后:

create ..\..\..\..\phonegap_projects\<name_of_project> <package_name> <name_of_project>

这对我有用。

【讨论】:

    【解决方案3】:

    我遇到了错误:

    • 项目已经存在!
      其次是:
    • 发生错误。正在删除项目...

    我发现对包和项目名称使用有效的字符集很重要。具体来说:

    • package_name 允许 a-z0-9_(下划线)
    • project_name 允许 A-Za-z0-9_(下划线)

    我的 project_nameTest-Project,例如带有破折号。

    【讨论】:

      【解决方案4】:

      命令:

      export PATH=/android-sdks/tools/:$PATH 
      

      为我做了诀窍。

      【讨论】:

        【解决方案5】:

        我在这里遇到了一个类似的问题,脚本不想创建我的项目,我已经设置了所有 PATH,下载了所有 SDK 和工具,删除了空格 - 仍然无法正常工作。

        问题是,脚本没有创建项目子目录。 可以在此讨论中找到更新/修复的脚本:

        https://groups.google.com/forum/?fromgroups=#!topic/phonegap/7wOqriD4YjY

        或直接在这里下载:

        https://phonegap.googlegroups.com/attach/b2d05c8a6a929569/create.js?view=1&part=4

        您好!

        加速

        【讨论】:

          【解决方案6】:

          致所有已经完成这些答案的迷失灵魂(就像我一样),尽管所有配置都正确,但仍然没有满足感。

          尝试从 Github repo 下载 phonegap,当前版本为 2.3.0

          https://github.com/phonegap/phonegap

          这对我有用。

          【讨论】:

            【解决方案7】:

            需要检查一些事项以帮助解决此问题:

            • 您是否从正确的 LOCATION 下载了正确版本的 PhoneGap? 似乎有没有与 Cordova-2.x.0.jar 打包的 PhoneGap 版本,这是运行所必需的剧本。 Download here 获取带有正确 JAR 文件的 PhoneGap。

            • 您是否已经创建了文件夹?文档声称只要新文件夹为空,您就可以使用此命令。 这不是真的在尝试创建项目之前确保该文件夹不存在。

            • 您有最新版本的 Ant 吗?您需要 Ant 1.8.0 或更高版本才能在 Android 上运行 PhoneGap。使用ant -v 验证您的版本。

            • 您的 .bash_profile/Environment Varibles PATH 设置正确吗? The official documentation has been updated to reflect this,但您绝对需要正确设置这些变量才能创建项目。

              李>
            • 您是否更新了终端以反映您的新路径? source .bash_profile. .bash_profile 在您当前打开的终端窗口中,以便在运行 create 命令时更新您的路径。

            • 您有正确的 commons-codec 吗?您可能会收到一条错误提示,指出缺少 commons-codec 文件,您可以下载该文件 here

            在所有这些之间,您应该能够使用 PhoneGap 2.1.0 或更高版本启动并运行 Android 项目。

            【讨论】:

            • 感谢@acconrad,这是一份很棒的清单。我认为在我的情况下它是 #2 和 #6 的组合
            【解决方案8】:

            这把我逼疯了。解决方案。不要为项目创建文件夹。它将为您创建一个。

            create <project_folder_path> <package_name> <project_name>
            

            指定&lt;project_folder_path&gt;时,请首先在您的硬盘上创建文件夹。

            【讨论】:

            • 谢谢!!!哎呀,我记得以前 phonegap 演练不太“有帮助”的美好时光。
            【解决方案9】:

            我有同样的问题。我正在从这个位置运行命令

            Harddriv:\cordova-2.1.0\incubator-cordova-android >create "Harddriv:\externalapps\phonegap_projects\HelloWorld\" com.phonegapaapp.helloworld helloworl
            

            我收到了你提到的错误。然后我尝试了该位置的相对路径,如下所示

            Harddriv:\cordova-2.1.0\incubator-cordova-android >create "..\externalapps\phonegap_projects" com.phonegapaapp.helloworld helloworl
            

            它对我有用!!!

            【讨论】:

              【解决方案10】:

              请确保您没有提供现有文件夹的文件夹路径。如果文件夹已经存在,请删除它。

              【讨论】:

              • 谢谢,但我想我在使用 C:\ 驱动器作为目的地时尝试过这个,例如创建“C:\”PackageName 项目名称并获取“项目已存在”
              【解决方案11】:

              我遇到了这个问题:

              create "c:\yada\yada\pic to post" <package_name> <project_name>
              

              但是当我从文件夹名称中取出空格时,它起作用了

              create "c:\yada\yada\pictopost" <package_name> <project_name>
              

              因此,如果项目路径中有空格,请将它们取出。

              【讨论】:

              • 我在 Windows 上使用这种格式 - 创建“C:\”PackageName 项目名称并获取“项目已存在”
              • 让我发狂的是,即使我将其设为“PackageName2”(在末尾添加数字),我也会得到相同的结果(如何?)。 :(
              猜你喜欢
              • 2013-01-13
              • 1970-01-01
              • 2012-12-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-11-29
              相关资源
              最近更新 更多