如何使用gradle从命令行创建android项目?

Pau*_*est 41 command-line android gradle

如何使用gradle命令行创建android项目(没有任何IDE)?

在使用android下面的util 之前

android create project --target 1 --name MyAndroidApp --path ./MyAndroidAppProject --activity MyAndroidAppActivity --package com.example.myandroid
Run Code Online (Sandbox Code Playgroud)

Pau*_*est 45

类似如何创建Java项目的gradle 建议创建Android项目与android create project比添加build.gradle经典的Android项目模板gh.c/N/N-1/B/M/oneeg /文档/安卓/的build.gradle.(这将允许在任何IDE中开发,因为旧结构被更广泛采用)

当然,会有一些gradle init选项或android create在未来(从SDK).

更新:

Android SDK中19具有androidCLI -g选项,允许使用gradle这个模板.您可能还需要指定使用CLI的Android gradle这个插件版本-v的选项,勾选安卓插件的gradle兼容表.例如命令创建一个采用Android插件的gradle(V 0.10)增加支持的gradle项目.

android create project \
    --gradle \
    --gradle-version 0.10 \
    --activity Main \
    --package com.example.app \
    --target android-19 \
    --path AppWithGradleTemplate
Run Code Online (Sandbox Code Playgroud)

或者编译工具19.1+,使用通过摇篮Android插件的更新版本--gradle-version:

android create project \
    --gradle \
    --gradle-version 0.11.+ \
    --activity Main \
    --package com.example.app \
    --target android-25 \
    --path AppWithGradleTemplate
Run Code Online (Sandbox Code Playgroud)

检查android create project -h帮助

但是Android Studio 0.6.1无法正确打开它(没有显示来源),因为它将第一个项目文件夹(即gradle)作为模块文件夹 - >你需要导入,而不仅仅是打开.

在Eclipse中,有一个关于src文件夹作为项目根的技巧.

.classpath

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="java"/><!--ADJUSTED HERE -->
    <classpathentry kind="src" path="gen"/>
    <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
    <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
    <classpathentry kind="output" path="bin/classes"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)

build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.10.+'
    }
}
apply plugin: 'android'

android {
   //{ for Android Gradle as Eclipse project
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['java']
            resources.srcDirs = ['java']
            aidl.srcDirs = ['java']
            renderscript.srcDirs = ['java']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        androidTest.setRoot('../tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
    //}
    compileSdkVersion 'Google Inc.:Google APIs:10'
    buildToolsVersion '19.0.3'

    buildTypes {
        release {
            runProguard false
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
    }
    lintOptions {
        abortOnError false
    }
}
Run Code Online (Sandbox Code Playgroud)

http://marketplace.eclipse.org/content/gradle

请阅读http://www.nodeclipse.org/projects/gradle/

  • SDK 工具 26.0.1 中删除了 `android create project`:/sf/answers/3289632321/ (2认同)

Cir*_*四事件 12

android create project 已在SDK工具26.0.1中删除

有关详细信息,请参阅https://askubuntu.com/questions/906942/android-update-project-path-target-android-25-on-ubuntu-16-04

试图使用它失败了:

*************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager
*************************************************************************
Invalid or unsupported command "project create"

Supported commands are:
android list target
android list avd
android list device
android create avd
android move avd
android delete avd
android list sdk
android update sdk
Run Code Online (Sandbox Code Playgroud)

解决方法:Android Studio模板+复制帮助程序脚本

我有的最好的解决方法是:

  • 从Android Studio GUI手动创建一个新的Gradle项目
  • 使用帮助程序脚本复制该模板,重命名过程中的类

以下帮助程序脚本允许您执行以下操作:

./template NewAppName AppTemplateProject
Run Code Online (Sandbox Code Playgroud)

NewAppNameAppTemplateProject使用Android studio创建的现有应用中获取新应用:

#!/usr/bin/env bash
set -ex
new="$1"
shift
if [ $# -gt 0 ]; then
  old="$1"
  shift
else
  old='Min'
fi
old="$(echo "$old" | sed -E 's/\/$//')"
new="$(echo "$new" | sed -E 's/\/$//')"
new_lower="$(echo "$new" | tr 'A-Z' 'a-z')"
old_lower="$(echo "$old" | tr 'A-Z' 'a-z')"
cp -r "$old" "$new"
cd "$new"
find . -type f -print0 | xargs -0 sed -i "s/${old}/${new}/g"
find . -type f -print0 | xargs -0 sed -i "s/${old_lower}/${new_lower}/g"
cd 'app/src/main/java/com/cirosantilli/android_cheat'
Run Code Online (Sandbox Code Playgroud)

GitHub上游:https://github.com/cirosantilli/android-cheat/blob/0e6b7462705179658b48d0e2e27f0dbce308393c/gradle/template

是的,它并不完美.CLI支持似乎是Google的次要支持:-(