diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 96b26522..770ed441 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,7 +20,10 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '18' + # java-version を 17 にしている理由は以下です + # - Android Gradle plugin 8.5 のデフォルト JDK version が 17 + # - 17 は LTS であり、temurin では 2027年10月までサポート予定 + java-version: '17' cache: 'gradle' - name: Copy gradle.properties run: cp gradle.properties.example gradle.properties diff --git a/CHANGES.md b/CHANGES.md index 87eff6f1..f6e652ae 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -14,6 +14,26 @@ - [UPDATE] libwebrtc を 127.6533.1.1 に上げる - @miosakuma - @zztkm +- [UPDATE] Android Gradle Plugin (AGP) を 8.5.0 にアップグレードする + - Android Studion の AGP Upgrade Assistant を利用してアップグレードされた内容 + - `com.android.tools.build:gradle` を 8.5.0 に上げる + - ビルドに利用される Gradle を 8.7 に上げる + - Android マニフェストからビルドファイルにパッケージを移動 + - Android マニフェストに定義されていた package を削除 + - ビルドファイルに namespace を追加 + - buildTypes に定義されていた debug ブロックを削除 + - AGP 8.5.0 対応で発生したビルドスクリプトのエラーを手動で修正した内容 + - compileOptions を buildTypes から android ブロックに移動する + - Android 公式ドキュメントを参考にした修正 + - https://developer.android.com/build/jdks?hl=ja#source-compat + - classifier を archiveClassifier に置き換える + - classifier は Gradle 8.0 で削除された + - https://docs.gradle.org/7.6/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar:classifier + - compileSdkVersion と targetSdkVersion を 34 に上げる + - AGP 8.0 から buildConfig がデフォルト false になったので、true に設定する + - GitHub Actions で利用する JDK のバージョンを 17 にする + - JitPack でのビルドで利用する JDK のバージョンを 17 にする + - @zztkm - [UPDATE] GitHub Actions の起動イベントに workflow_dispatch を追加 - @zztkm - [UPDATE] GitHub Actions の定期実行をやめる diff --git a/build.gradle b/build.gradle index 84a6a892..961ae0cb 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.4.2' + classpath 'com.android.tools.build:gradle:8.5.0' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_version}" classpath 'org.ajoberstar.grgit:grgit-gradle:5.2.0' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 50832291..20db9ad5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/jitpack.yml b/jitpack.yml index adb3fe10..efde7bf2 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -1,2 +1,2 @@ jdk: - - openjdk11 + - openjdk17 diff --git a/sora-android-sdk/build.gradle b/sora-android-sdk/build.gradle index 61d96fb7..cbfc3d3e 100644 --- a/sora-android-sdk/build.gradle +++ b/sora-android-sdk/build.gradle @@ -7,11 +7,11 @@ apply plugin: 'org.jlleitschuh.gradle.ktlint' group = 'com.github.shiguredo' android { - compileSdkVersion 32 + compileSdkVersion 34 defaultConfig { minSdkVersion 21 - targetSdkVersion 32 + targetSdkVersion 34 buildConfigField("String", "REVISION", "\"${grgit.head().abbreviatedId}\"") buildConfigField("String", "LIBWEBRTC_VERSION", "\"${libwebrtc_version}\"") @@ -24,21 +24,30 @@ android { java.srcDirs += 'src/test/kotlin' } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + buildFeatures { + // AGP 8.0 からデフォルトで false になった + // このオプションが true でないと、defaultConfig に含まれている + // buidlConfigField オプションが無効になってしまうため、true に設定する + // 参考: https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes#default-changes + buildConfig true + } buildTypes { - debug { - debuggable true - } + // Android Studio でのデバッグビルドタイプはデフォルトで debuggable true としてビルドされるため + // AGP Upgrade Assistant によって debug ブロックは削除された。 release { } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } } testOptions { unitTests.includeAndroidResources = true } + // AGP 8.0 からモジュールレベルの build script 内に namespace が必要になった + // 参考: https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes#namespace-dsl + namespace 'jp.shiguredo.sora.sdk' } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { @@ -110,7 +119,9 @@ configurations.all { } task sourcesJar(type: Jar) { - classifier = 'sources' + // classifier は archiveClassifier に置き換えられた + // https://docs.gradle.org/7.6/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar:classifier + archiveClassifier = 'sources' from android.sourceSets.main.java.srcDirs } diff --git a/sora-android-sdk/src/main/AndroidManifest.xml b/sora-android-sdk/src/main/AndroidManifest.xml index 4fdf268b..a2f47b60 100644 --- a/sora-android-sdk/src/main/AndroidManifest.xml +++ b/sora-android-sdk/src/main/AndroidManifest.xml @@ -1,3 +1,2 @@ - +