web-dev-qa-db-ja.com

コマンドラインからgradleを使用してAndroidプロジェクトを作成するには?

コマンドラインからgradleを使用してAndroidプロジェクトを作成する方法(IDEなし)?

以下のようにAndroid utilを使用する前

Android create project --target 1 --name MyAndroidApp --path ./MyAndroidAppProject --activity MyAndroidAppActivity --package com.example.myandroid
40
Paul Verest

How to create Java gradle project 推奨するAndroid with with Android create project追加build.gradleクラシックのテンプレートAndroid project gh.c/N/n-1/b/m/oneeg/docs/Android/build.gradle 。(それは古い構造がより広く採用されているため、どのIDEでも開発できます)

もちろん、いくつかのgradle initオプションまたはAndroid create(SDKから)将来的に。

更新:

Android SDK 19にはAndroid CLI -g gradleテンプレートの使用を許可するオプション。 CLIを使用してAndroid gradleプラグインバージョン-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 plugin via--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)を取得したため、Studio 0.6.1を正しく開くことができませんでした(ソースは表示されません)->インポートするだけでなく、インポートします。

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/ で読む

45
Paul Verest

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 template + copy helper script

私が持っている最善の回避策は次のとおりです:

  • Android Studio GUIから手動で新しいGradleプロジェクトを作成します
  • ヘルパースクリプトを使用してそのテンプレートをコピーし、プロセス内のクラスの名前を変更します

次のヘルパースクリプトを使用すると、次のことができます。

./template NewAppName AppTemplateProject

Android studio:で作成された既存のNewAppNameから新しいアプリAppTemplateProjectを取得するには:

#!/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に次ぐように見えます:-(

ここに解決策があります PHP Android CLI

ただ走れ:

phpandroid create HelloWorld com.example.helloworld

コンパイルとターゲットSDKは29、buildToolsVersionは29.0.1、minSdkは16のように、プロジェクトは最新のAndroid-studioパラメーターでスキャフォールドされます。

変更する場合、たとえば、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

これにより、appadminおよびライブラリcommonの2つのアプリケーションが生成されます。 Appには2つのディメンションがあります:typebackend 4つのバリアント:freepaidtypeディメンション。 phpfirebaseディメンションのbackendバリアント。

0
Anu Tig3r