Как создать проект андроида с помощью gradle из командной строки?

Как создать проект андроида с gradle из командной строки (без какой-либо IDE)?

До того, как это было с android, как показано ниже

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

Ответ 1

Аналогично Как создать проект Java Gradle предлагаем создать проект Android с android create project, а затем добавить шаблон build.gradle для классического проекта Android gh.c/N/n-1/b/m/o.n.e.e.g/docs/android/build.gradle. (Это позволило бы развиваться в любой IDE, так как старая структура более широко распространена)

Конечно, в будущем появятся некоторые опции gradle init или android create (из SDK).

UPDATE:

Android SDK 19 имеет опцию android CLI -g, которая позволяет использовать шаблон Gradle. Вам также может понадобиться указать версию плагина Android Gradle с помощью параметра CLI -v, проверьте таблицу совместимости плагина Android 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

или для buildTools 19. 1+ используйте более новую версию плагина Gradle 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/

Ответ 2

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 + вспомогательный скрипт копирования

Лучший способ обойти это:

  • создать новый проект Gradle вручную из графического интерфейса Android Studio
  • используйте вспомогательный скрипт для копирования этого шаблона, переименовывая классы в процессе

Следующий вспомогательный скрипт позволяет вам:

./template NewAppName AppTemplateProject

чтобы получить новое приложение NewAppName из существующего AppTemplateProject, созданного с помощью студии Android:

#!/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 upstream: https://github.com/cirosantilli/android-cheat/blob/0e6b7462705179658b48d0e2e27f0dbce308393c/gradle/template

Да, это не идеально. Поддержка CLI кажется вторичной по отношению к Google :-(

Ответ 3

Вот решение PHP Android CLI

Просто беги:

phpandroid create HelloWorld com.example.helloworld

и ваш проект защищен последними параметрами android-studio, такими как, compile & целевой SDK - 29, buildToolsVersion - 29.0.1 & minSdk - 16.

Если вы хотите изменить, например, хотите установить minSdk в 14:

phpandroid create PROJECT PACKAGE --minSdk=14

PHP Android CLI также может создавать варианты и модули (приложение/библиотека):

phpandroid create PROJECT PACKAGE --modules=common:library,admin --variants=free:type,paid:type,php:backend,firebase:backend

это создаст 2 приложения, app, admin и библиотека common. App имеет 2 измерения: type & backend 4 варианта: free & paid размера type; php & firebase вариант измерения backend.