Android Studio の gradle.properties の理解を更新しました。

普段、このファイルにはあま​​り注目していません。ただ、以前、上司がここに署名情報を入れてうまくいったので、こうすることを覚えただけです。原理も何も知りませんでした。偶然見てしまったのです。 AndroidStudio ローカリゼーション設定の buildToolsVersion と gradle . gradleBuildTools のこの記事で、なぜこれができるのかを理解しました。
次のコンテンツは、AndroidStudio ローカリゼーション構成 gradle の buildToolsVersion および gradleBuildToolsから取得されます。

gradle.properties には 2 つの非常に便利なプロパティがあります

  • 1. gradle.properties の定数は、build.gradle がコンポーネントであるかプロジェクト全体の build.gradle であるかに関係なく、Android プロジェクト内の任意の build.gradle ファイルで読み取ることができます。
  • 2. gradle.properties のデータ型はすべて String 型ですが、他のデータ型を使用する場合は、自分で変換する必要があります。

gradle.properties で解決できる問題
: gradle.properties のプロパティを利用することで、複数人で作業する場合、開発チームメンバーの Android 開発環境(開発環境とは Android SDK や AndroidStudio を指します)がバラバラでオンラインプロジェクトが頻繁に変更される問題を解決できます。 Android プロジェクトを共同開発する build.gradle 構成。

  • 1. 各 Android コンポーネントの build.gradle には属性 buildToolsVersion があり、ビルド ツールのバージョン番号を示します。この属性値は、AndroidSDK の Android SDK Build-tools に対応します。通常の状況では、buildToolsVersion build.gradle はコンピューターと同じです。Android SDK Build-tools の最新バージョンは一貫しています。たとえば、Android SDK Build-tools の最新バージョンは 25.0.3 であり、build.gradle の buildToolsVersion バージョン番号は次のようになります。私の Android プロジェクトも 25.0.3 ですが、Android プロジェクトが複数の人によって同時に開発されると、全員の開発環境と Android SDK Build-tools は常に異なります。誰もが Android SDK を頻繁にアップグレードおよびアップデートするわけではありません。コードがオンライン環境に保存されると (SVN/Git などのツールを使用するなど)、オンライン Android プロジェクトの build.gradle の buildToolsVersion も、開発者がコードを送信した後に継続的に変更されます。
  • 2. もう 1 つの理由は、Android プロジェクトのルート ディレクトリにある build.gradle が Android Gradle ビルド ツールを宣言しており、このツールにもバージョン番号があり、Gradle Build Tools のバージョン番号が AndroidStudio のバージョン番号と一致していることです。しかし、一部の開発者は基本的に、AndroidStudio のバージョンを長期間アップグレードしないため、チーム内の各開発者の Gradle Build Tools のバージョン番号が不一致になります。
  • コードが同期されるたびに 2 つのツールのバージョン番号が変更される場合、開発者は自分で手動でバージョン番号を元に戻すことができ、ツールのバージョン番号を変更するコードをオンライン環境に送信する必要がないため、開発を続行することはほとんどできません。 ; しかし、多くの企業では継続的なソフトウェア バージョンのリリースに継続的統合ツール (Jenkins など) が使用され、Android のパッケージ化には Android SDK ビルド ツールと Gradle ビルド ツールの連携が必要です。継続的統合ツールが依存する Android 環境構築ツールのバージョン番号が一致しないと、Android のパッケージ化が失敗します。

上記の問題を解決するには、 Android プロジェクトの build.gradle のbuildToolsVersion および GradleBuildTools バージョン番号をオンライン コードから分離し、オンライン コードの buildToolsVersion および Gradle Build Tools バージョン番号が人為的に変更されないようにする必要があります。かわった。

構成戦略
1. まず、Android プロジェクトの gradle.properties で 2 つの定数、localBuildToolsVersion と localGradlePluginVersion を定義します。これらは、それぞれ buildToolsVersion と Gradle Build Tools のバージョン番号を表します。

# 为自动化出包配置(因为每个开发的电脑坏境不一致)
localBuildToolsVersion=25.0.3
# 这个值一般跟你的AndroidStudio版本号一致
localGradlePluginVersion=2.3.2

2. 次に、Android プロジェクトの build.gradle で localGradlePluginVersion を参照します。

dependencies {
        //classpath "com.android.tools.build:gradle:$localGradlePluginVersion"
        //$localGradlePluginVersion是gradle.properties中的数据
        classpath "com.android.tools.build:gradle:$localGradlePluginVersion"
    }

3. コンポーネントの build.gradle で localBuildToolsVersion を参照します。

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    //localBuildToolsVersion是gradle.properties中的数据
    buildToolsVersion localBuildToolsVersion

    defaultConfig {
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
    }
}

4. 最後に、バージョン管理ツール (Git、SVN) からの gradle.properties を無視し、構成された gradle.properties のコピーを各開発者に送信します。

おすすめ

転載: blog.csdn.net/fengyulinde/article/details/106803725