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

 阮琳芷信玲俊岳 发布于 2023-02-07 19:58

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

在使用android下面的util 之前

android create project --target 1 --name MyAndroidApp --path ./MyAndroidAppProject --activity MyAndroidAppActivity --package com.example.myandroid

Paul Verest.. 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

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

android create project \
    --gradle \
    --gradle-version 0.11.+ \
    --activity Main \
    --package com.example.app \
    --target android-25 \
    --path AppWithGradleTemplate

检查android create project -h帮助

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

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

.classpath



    
    
    
    
    
    

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/
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src//... 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
    }
}

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

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

2 个回答
  • 类似如何创建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
    

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

    android create project \
        --gradle \
        --gradle-version 0.11.+ \
        --activity Main \
        --package com.example.app \
        --target android-25 \
        --path AppWithGradleTemplate
    

    检查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>
    

    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
        }
    }
    

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

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

    2023-02-07 20:00 回答
  • 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
    

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

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

    从Android Studio GUI手动创建一个新的Gradle项目

    使用帮助程序脚本复制该模板,重命名过程中的类

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

    ./template NewAppName AppTemplateProject
    

    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'
    

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

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

    2023-02-07 20:00 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有