ラベル Gradle の投稿を表示しています。 すべての投稿を表示
ラベル Gradle の投稿を表示しています。 すべての投稿を表示

2025年5月5日月曜日

Android gradle.properties に定数を入れる

どうも。どっことです。今回はgradle.propertiesを使った設定値の管理方法について紹介します。

gradle.propertiesで設定値を管理する

gradle.propertiesを用意し定数値感覚で設定すれば、アプリのバージョンやtargetVersion/minSDKVersionなどの値を一つのファイルで管理させることができます。

設定方法

例えば以下のbuild.gradleにあるマジックナンバーを定数化しgradle.propertiesに移して参照しましょう。

android {
    namespace = "com.mkt120.sampleapplication"
    compileSdk = 35
    defaultConfig {
        applicationId = "com.mkt120.sampleapplication"
        minSdk = 26
        targetSdk = 35
        versionCode = 100
        versionName = "1.0.0"
        ... 
    }
    ... 

gradle.propertiesに外出しする定数を記述します。

ANDROID_SDK_VERSION=35
ANDROID_MIN_SDK_VERSION=26
ANDROID_VERSION_NAME="1.0.0"
ANDROID_VERSION_CODE=100

上で配置した定数をbuild.gradleで参照します。

android {
    namespace = "com.mkt120.sampleapplication"
    compileSdk = Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)

    defaultConfig {
        applicationId = "com.mkt120.sampleapplication"
        minSdk = Integer.parseInt(project.ANDROID_MIN_SDK_VERSION)
        targetSdk = Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
        versionCode = Integer.parseInt(project.ANDROID_VERSION_CODE)
        versionName = project.ANDROID_VERSION_NAME
        ...        
    }
    ...

gradle.propertiesに記述した定数はproject.XXXXXの形式で参照することができます。

まとめ

今回はgradle.propertiesを使った設定値の管理方法について紹介しました。

参考

2023年12月15日金曜日

groupId,artifactIdについて解説

どうも。どっことです。今回はgroupIdartifactIdについて解説します。

groupIdとは?

他のすべてのプロジェクトと区別するためのID。グループを表現したID。一般的にはドメイン名を逆にしたものが挙げられる。例えばcom.exampleなど。自分のWebページなどがあるなら、それを使うのが無難そうです。

artifactIdとは?

プロジェクト名という表現がわかりやすい。ライブラリ名とかですね。

versionとは?

そのプロジェクトで管理しているバージョン。デフォルトで1.0-SNAPSHOTとなっているが、 フォーマットは決まっていない。

参考

2023年10月18日水曜日

2023年10月4日水曜日

Android gradleのキャッシュを削除するコマンドを紹介

どうも。どっことです。今回は、毎回忘れるGradleのキャッシュ削除のコマンドを備忘録として紹介します。

gradleのキャッシュを削除するコマンド

早速ですが、コマンドを載せます。

rm -rf ~/.gradle/cashes

~/となっていることを見ても分かる通り、削除するディレクトリはアプリプロジェクトにあるディレクトリではなくユーザディレクトリにあるキャッシュのディレクトリになります。これを実行すると、次回ビルドは非常に時間がかかるのが見込まれますので、「PCやプロジェクトがおかしいな?」と思った時にやるのがちょうどいいと思います。

ちなみに .gradle フォルダを削除しても、Gradle がビルドする時に再構築してくれるらしいので気にすることは全くありません。

独り言

ただ、最近AndroidStudioのビルドが全く通らない。

C:\Users\XXXXX\Documents\project\sampleProject\app\build\intermediates\incremental\packageDebug\tmp\debug\zip-cache\androidResources (アクセスが拒否されました。)

いったいなんだってばよ。

追記。なんか解決した。新規に記事にした。

2023年7月29日土曜日

Android 環境変数や定数を build.gradleに持たせる実装を解説

どうも。どっことです。今回は環境変数や定数を build.gradleで管理する実装を解説します。

build.gradleで環境変数・定数を管理する実装

Gradleが自動生成してくれるBuildConfigを使うことで、buildTypesproductFlavorごとに初期値や定数値を持たせることができます。よくあるのはAPIのドメインや、広告IDの切り分けなどですね。開発版(buildType:debug)とリリース版(buildType:release)で開発用と本番用で切り替えるなどに利用できます。今回はBuildConfigにアプリ内で参照できるパラメータを乗せる実装を解説します。

BuildConfigに定数を乗せる実装

buildTypes(debug/release)ごとに定義する場合は以下でOKです。

  • defaultConfigに初期値を設定する。
  • buildTypesごとに定数の値を上書き設定する。
android {
  // ...
  defaultConfig {
      // buildTypesで上書きがなかった場合に設定される値
      buildConfigField "String", "AD_UNIT_ID", "\"とりあえずな広告ID\""
  }
  // ...

  buildTypes {
    release {
      // 本物の広告IDを上書きして定義
      buildConfigField("String", "AD_UNIT_ID", "\"本物の広告ID\"")
      ...
    }
    // とりあえずな広告IDをdefaultConfigに書いていますが、
    // debugブロックに書いて、defaultConfigは空文字などを指定しても問題ありません。
  }
}

あとは上記の定数を使いたいところで、以下ように参照すれば値を取得することができます。

const val AD_UNIT_ID_SIDE_BAR = BuildConfig.AD_UNIT_ID

まとめ

今回は、BuildConfigに定数を持たせる実装について解説しました。同じアプリでも開発環境やクライアントに見せる版、一般公開版など種別がさまざまになることが多いと思います。このような機能を利用して、ソースコード上に煩わしい実装が増やさないように心がけましょう。

参考

移行予定

どうも。どっことです。 タイトルの通りですが、諸事情により GitHubPage に移行予定です。 https://mkt120.github.io/ この備忘録に記載の内容を転記しつつ、今後はこちらのページを更新していく予定です。