1

そのため、 http://tools.android.com/tech-docs/new-build-systemを使用して Android ビルドを自動化しようとしています。

ビルドシステムを正確に使用する方法はまだ非常に不明であるため、これまたは Gradle の経験がある人なら、次の質問に答えることができるかもしれません。

このビルド ファイルを参照として使用します。

//
// A basic Android application that follows all the conventions
//
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.2'
    }
}
apply plugin: 'android'

android {
    target = "android-15"
    testBuildType = "debug"

    defaultConfig {
        versionCode = 12
        versionName = "2.0"
        minSdkVersion = 16
        targetSdkVersion = 16

        signingStoreLocation = "debug.keystore"
        signingStorePassword = "android"
        signingKeyAlias = "androiddebugkey"
        signingKeyPassword = "android"

        buildConfig "private final static boolean DEFAULT = true;", \
                    "private final static String FOO = \"foo\";"
    }

    buildTypes {
        debug {
            packageNameSuffix = ".debug"

            buildConfig "private final static boolean DEBUG2 = false;"
        }
    }

    sourceSets {

       main {}
       test {}
    }

    aaptOptions {
        noCompress "txt"
    }
}
  1. ビルドのためにこれにどのように正確に依存関係を追加しますか? Gradle の依存関係を使用すると、ビルド エラーがスローされます。
  2. さまざまなビルド環境をどのように作成しますか? そして、コマンドラインからこれらを実行しますか?
  3. main と test 以外の sourceSets のポイントは何ですか?

助けてくれてありがとう。上記の質問に加えて、一般的なガイドをいただければ幸いです。

4

1 に答える 1

1

1-依存関係は通常のgradleの方法で追加されるため、たとえば:

依存関係 { コ​​ンパイル 'com.google.android:support-v4:r7' }

詳細: http://gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html

2-何を言っているのかわからない。異なるビルド バリアントを意味する場合は、プロダクト フレーバーを作成する必要があります ( http://tools.android.com/tech-docs/new-build-system/using-the-new-build-systemを参照)。

コマンドラインからビルドする場合は、「gradle assemble」を実行するだけです。上記のドキュメントを参照してください。

3- SourceSets は、デフォルト構成 (メイン/テスト)、フレーバー、およびビルド タイプのソースセットを構成することです。Java gradle ビルドとは異なり、新しいソースセットを追加して自動的にコンパイルすることはできません。これが、デフォルトの Java プラグインによって提供される sourceSets オブジェクトのようなトップレベルではなく、android 名前空間 (android.sourcesets) にある理由です。

于 2012-12-19T20:47:05.800 に答える