【问题标题】:Build Android project on command line on OSX: Task 'assembleDebug' not found in root project在 OSX 的命令行上构建 Android 项目:在根项目中找不到任务“assembleDebug”
【发布时间】:2014-12-15 18:26:56
【问题描述】:

我正在尝试使用以下方法在 OSX (Mavericks 10.9.5) 命令行上构建 Android 项目:http://developer.android.com/tools/building/building-cmdline.html

本方法说明如何使用 assembleDebug/assembleRelease 构建 Android 项目。

不幸的是,gradle 没有创建 assembleDebugassembleRelease 目标。

执行./gradlew assembleDebug 会返回:

FAILURE: Build failed with an exception.

* What went wrong:
Task 'assembleDebug' not found in root project 'test'.

* Try:
Run gradlew tasks to get a list of available tasks. Run with --stacktrace option to get the stack     trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.826 secs

步骤:

android 创建项目

已经用android create project --path . --name "DummyAPK" --target android-21 --package com.dummyapk.dummyapk --activity DummyActivity创建了测试项目

返回的

Created directory /Users/user/Documents/test/src/com/dummyapk/dummyapk
Added file ./src/com/dummyapk/dummyapk/DummyActivity.java
Created directory /Users/user/Documents/test/res
Created directory /Users/user/Documents/test/bin
Created directory /Users/user/Documents/test/libs
Created directory /Users/user/Documents/test/res/values
Added file ./res/values/strings.xml
Created directory /Users/user/Documents/test/res/layout
Added file ./res/layout/main.xml
Created directory /Users/user/Documents/test/res/drawable-xhdpi
Created directory /Users/user/Documents/test/res/drawable-hdpi
Created directory /Users/user/Documents/test/res/drawable-mdpi
Created directory /Users/user/Documents/test/res/drawable-ldpi
Added file ./AndroidManifest.xml
Added file ./build.xml
Added file ./proguard-project.txt

gradle 初始化

之后我执行了gradle init,它返回了

:wrapper
:init
BUILD SUCCESSFUL

gradlew 任务

使用gradlew tasks 查询可用任务返回(是不是漏掉了什么?)

:tasks

------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------

Build Setup tasks
-----------------
init - Initializes a new Gradle build. [incubating]
wrapper - Generates Gradle wrapper files. [incubating]

Help tasks
----------
components - Displays the components produced by root project 'test'. [incubating]
dependencies - Displays all dependencies declared in root project 'test'.
dependencyInsight - Displays the insight into a specific dependency in root project 'test'.
help - Displays a help message.
projects - Displays the sub-projects of root project 'test'.
properties - Displays the properties of root project 'test'.
tasks - Displays the tasks runnable from root project 'test'.

To see all tasks and more detail, run with --all.

BUILD SUCCESSFUL

Total time: 3.474 secs

我的 Java 版本是

java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

..Gradle 版本(通过 brew 安装)是

------------------------------------------------------------
Gradle 2.2.1
------------------------------------------------------------

Build time:   2014-11-24 09:45:35 UTC
Build number: none
Revision:     6fcb59c06f43a4e6b1bcb401f7686a8601a1fb4a

Groovy:       2.3.6
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.7.0_60 (Oracle Corporation 24.60-b09)
OS:           Mac OS X 10.9.5 x86_64

能够在命令行上构建 Android 项目我缺少什么?

【问题讨论】:

标签: android macos gradle


【解决方案1】:

android create project 不会创建对 gradle 友好的结构。它创建了一个ant 友好结构。根据您的意图,您有两种选择。

  1. 使用 ant 构建您的项目(Android 团队目前不支持)
  2. 使用 Android Studio 生成对 gradle 友好的项目结构。

num 2 是 Android 团队推荐的方法。就像 dl'ing Android Studio 并创建一个新项目一样简单。从那里您应该能够创建一个可以使用./gradlew build 构建的新项目

【讨论】:

  • 感谢您的回答!有道理,虽然android create project 也留下了一些 gradle 相关的文件。
  • android studio 做了什么android create project 不做的? android 网站在 creating 和 [building][(developer.android.com/tools/building/building-cmdline.html) 上有文档,来自命令行的一个 android 应用程序 - 你认为这是可能的,但我遵循了这些说明,我得到了与 derFunk 相同的错误...
  • 我会避免android create project,这不是你想要的。它与gradle无关。 Android Studio 创建您需要的 gradle 文件 ( build.gradle ) 并将 java 和 manifest 放在它应该在的位置 ( src/main )。
  • 如果它不是人们想要的,那为什么它还在“入门”文档中。有没有人知道需要做什么才能使其对 gradle 友好?
  • 使用 Android Studio 创建一个新项目。它将向您展示结构,比较两个结构并修复您的结构。或者在AS中新建一个项目,复制resources/code/manifests/assets/lib
【解决方案2】:

试试这个: ./android 创建项目 -p AppPAKTGV -a Main -k com.example.apppaktgv -t android-23 -g -v 0.11.+

它可以工作,但是当我尝试目标 24 或 25 不起作用时,我现在不行

【讨论】:

    【解决方案3】:

    尝试这样做并注意

    a) 您需要在第 3 步下键入 tools/android(如第 2 步:执行) - 但正如所说的蚂蚁结构没有帮助 -- 不确定我可以从那里去

    b) 我遵循建议并确保获得平台工具 ——我可以建造 -- 我可以得到那个 .apk -- 我可以 adb 安装(我重命名任何现有的 .apk)

    似乎有效!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多