script - gradle version android studio
¿Cómo crear un proyecto de Android con gradle desde la línea de comandos? (2)
¿Cómo crear un proyecto de Android con gradle
desde la línea de comandos ( sin ningún IDE )?
Antes de que fuera con la utilidad de android
como a continuación
android create project --target 1 --name MyAndroidApp --path ./MyAndroidAppProject --activity MyAndroidAppActivity --package com.example.myandroid
Similar a Cómo crear un proyecto gradle de Java, sugiera crear un proyecto Android con un proyecto android create project
que agregar la plantilla build.gradle
para el proyecto clásico de Android gh.c/N/n-1/b/m/o.n.e.e.g/docs/android/build.gradle . (Eso permitiría desarrollar en cualquier IDE, ya que la estructura anterior es más ampliamente adoptada)
Por supuesto, habrá algunas opciones de gradle init
o android create
(de SDK) en el futuro.
ACTUALIZAR:
Android SDK 19 tiene la opción CLI de android
que permite usar la plantilla de gradle. Es posible que también deba especificar la versión de Android Gradle Plugin con la opción CLI -v
, consulte la tabla de compatibilidad de Android Gradle Plugin . Ejemplo de comando para crear el proyecto que usa el complemento gradle de Android (v 0.10) para agregar soporte de gradle.
android create project /
--gradle /
--gradle-version 0.10 /
--activity Main /
--package com.example.app /
--target android-19 /
--path AppWithGradleTemplate
o para buildTools 19.1+, use una versión más nueva del complemento Gradle para Android a través de --gradle-version
:
android create project /
--gradle /
--gradle-version 0.11.+ /
--activity Main /
--package com.example.app /
--target android-25 /
--path AppWithGradleTemplate
verifica android create project -h
para ayuda
Sin embargo, Android Studio 0.6.1 no pudo abrirlo correctamente (no se muestran las fuentes), porque se tomó la carpeta del primer proyecto (es decir, gradle
) como carpeta de módulo -> debe importar, no solo abrir.
En Eclipse fue con un truco de considerar la carpeta src
como raíz del proyecto.
.classpath
es
<?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>
Y 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
}
}
android create project
se eliminó en las herramientas SDK 26.0.1
Ver https://askubuntu.com/questions/906942/android-update-project-path-target-android-25-on-ubuntu-16-04 para más detalles
Intentar usarlo falla con:
*************************************************************************
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
Solución alternativa: plantilla de Android Studio + script de copia de ayuda
La mejor solución que tengo es:
- crear un nuevo proyecto de Gradle manualmente desde la GUI de Android Studio
- use un script auxiliar para copiar esa plantilla, renombrando las clases en el proceso
La siguiente secuencia de comandos de ayuda le permite hacer:
./template NewAppName AppTemplateProject
para obtener una nueva aplicación NewAppName
de un AppTemplateProject
existente creado con 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 upstream: https://github.com/cirosantilli/android-cheat/blob/0e6b7462705179658b48d0e2e27f0dbce308393c/gradle/template
Sí, no es perfecto. El soporte de la CLI parece secundario a Google :-(