diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a85c862ab..9e1857cb1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,10 +59,10 @@ jobs: submodules: recursive persist-credentials: false - - name: set up JDK 17 + - name: set up JDK 21 uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v5 with: - java-version: "17" + java-version: "21" distribution: "temurin" - name: Set up Gradle (caching) @@ -148,10 +148,10 @@ jobs: submodules: recursive persist-credentials: false - - name: set up JDK 17 + - name: set up JDK 21 uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v5 with: - java-version: "17" + java-version: "21" distribution: "temurin" - name: Set up Gradle (caching) @@ -202,10 +202,10 @@ jobs: submodules: recursive persist-credentials: false - - name: set up JDK 17 + - name: set up JDK 21 uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v5 with: - java-version: "17" + java-version: "21" distribution: "temurin" - name: Set up Gradle (caching) @@ -275,10 +275,10 @@ jobs: submodules: recursive persist-credentials: false - - name: set up JDK 17 + - name: set up JDK 21 uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v5 with: - java-version: "17" + java-version: "21" distribution: "temurin" - name: Set up Gradle (caching) @@ -413,10 +413,10 @@ jobs: submodules: recursive persist-credentials: false - - name: set up JDK 17 + - name: set up JDK 21 uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v5 with: - java-version: "17" + java-version: "21" distribution: "temurin" - name: Set up Gradle (caching) @@ -518,10 +518,10 @@ jobs: submodules: recursive persist-credentials: false - - name: set up JDK 17 + - name: set up JDK 21 uses: actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 # v5 with: - java-version: "17" + java-version: "21" distribution: "temurin" - name: Set up Gradle (caching) diff --git a/.github/workflows/uploadArchives.yml b/.github/workflows/uploadArchives.yml index 9cd8fd217..339418e4f 100644 --- a/.github/workflows/uploadArchives.yml +++ b/.github/workflows/uploadArchives.yml @@ -25,11 +25,11 @@ jobs: token: ${{ secrets.ACCESS_TOKEN }} persist-credentials: false - - name: set up JDK 17 + - name: set up JDK 21 uses: actions/setup-java@v4 with: - java-version: 17.0.10 - distribution: "adopt" + java-version: 21 + distribution: "temurin" - name: Add Maven Central Repository credentials and keys to gradle.properties run: | diff --git a/backtrace-library/build.gradle b/backtrace-library/build.gradle index ef132490e..0fcda8ec5 100644 --- a/backtrace-library/build.gradle +++ b/backtrace-library/build.gradle @@ -10,16 +10,22 @@ androidGitVersion { format '%tag%%-count%%-commit%%-branch%' } +def libVersion = androidGitVersion.name() + +if (libVersion == null || libVersion.trim().isEmpty() || libVersion.trim() == 'null') { + throw new GradleException("androidGitVersion.name() resolved to '${libVersion}'. " + + "The library version could not be determined. Make sure the git history and tags are available.") +} + android { - namespace "backtraceio.library" + namespace = "backtraceio.library" + enableKotlin = false + compileSdk = 36 defaultConfig { - minSdkVersion 21 - compileSdk 36 - targetSdkVersion 36 - ndkVersion '27.3.13750724' - versionName androidGitVersion.name() - buildConfigField("String", "VERSION_NAME", "\"${versionName}\"") - testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' + minSdk = 21 + ndkVersion = '27.3.13750724' + buildConfigField("String", "VERSION_NAME", "\"${libVersion}\"") + testInstrumentationRunner = 'androidx.test.runner.AndroidJUnitRunner' externalNativeBuild { cmake { @@ -39,12 +45,13 @@ android { } buildTypes { - debug { - testCoverageEnabled true - } release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + minifyEnabled = false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + debug { + enableUnitTestCoverage = true + enableAndroidTestCoverage = true } } @@ -66,15 +73,19 @@ android { lint { abortOnError = true + targetSdk = 36 checkReleaseBuilds = true baseline = file('lint-baseline.xml') } + testOptions { + targetSdk = 36 + } } mavenPublishing { publishToMavenCentral() signAllPublications() - coordinates(GROUP, POM_NAME, android.defaultConfig.versionName) + coordinates(GROUP, POM_NAME, libVersion) pom { name = POM_NAME diff --git a/build.gradle b/build.gradle index 9aba94e74..a59590546 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:8.13.2' + classpath 'com.android.tools.build:gradle:9.3.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/example-app/build.gradle b/example-app/build.gradle index de2465515..f8c26f066 100644 --- a/example-app/build.gradle +++ b/example-app/build.gradle @@ -1,15 +1,15 @@ apply plugin: 'com.android.application' android { - namespace "backtraceio.backtraceio" + namespace = "backtraceio.backtraceio" + compileSdk = 36 defaultConfig { - compileSdk 36 - applicationId "backtraceio.backtraceio" - minSdkVersion 21 - targetSdkVersion 36 - versionCode 1 - versionName "1.0" - testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' + applicationId = "backtraceio.backtraceio" + minSdk = 21 + targetSdk = 36 + versionCode = 1 + versionName = "1.0" + testInstrumentationRunner = 'androidx.test.runner.AndroidJUnitRunner' ndk { // -PqualificationAbi= builds a single-ABI qualification app for the hardware // release gate (for example a 32-bit-only install on a 64-bit device). The library's @@ -36,7 +36,7 @@ android { buildTypes { release { - minifyEnabled false + minifyEnabled = false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } @@ -48,20 +48,18 @@ android { } } - android { - lint { - abortOnError = true - checkReleaseBuilds = true - baseline = file('lint-baseline.xml') - } - defaultConfig { - buildConfigField ("String", "BACKTRACE_SUBMISSION_URL", getProperty("BACKTRACE_SUBMISSION_URL", "null")) - buildConfigField ("String", "BACKTRACE_CORONER_URL", getProperty("BACKTRACE_CORONER_URL", "null")) - buildConfigField ("String", "BACKTRACE_CORONER_TOKEN", getProperty("BACKTRACE_CORONER_TOKEN", "null")) - } - buildFeatures { - buildConfig = true - } + lint { + abortOnError = true + checkReleaseBuilds = true + baseline = file('lint-baseline.xml') + } + defaultConfig { + buildConfigField ("String", "BACKTRACE_SUBMISSION_URL", getProperty("BACKTRACE_SUBMISSION_URL", "null")) + buildConfigField ("String", "BACKTRACE_CORONER_URL", getProperty("BACKTRACE_CORONER_URL", "null")) + buildConfigField ("String", "BACKTRACE_CORONER_TOKEN", getProperty("BACKTRACE_CORONER_TOKEN", "null")) + } + buildFeatures { + buildConfig = true } packagingOptions { jniLibs { diff --git a/gradle.properties b/gradle.properties index 289ed9dcd..8a8fa37e0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,6 +11,7 @@ org.gradle.jvmargs=-Xmx4g # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects org.gradle.parallel=true +org.gradle.tooling.parallel=true GROUP=com.github.backtrace-labs.backtrace-android POM_NAME=backtrace-library diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d2602728d..e1781a02a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Fri Jul 04 21:28:55 CEST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gson/build.gradle b/gson/build.gradle index b70520fb6..1e99dc413 100644 --- a/gson/build.gradle +++ b/gson/build.gradle @@ -1,6 +1,6 @@ plugins { id 'java' - id 'com.github.johnrengelman.shadow' version '8.1.1' + id 'com.gradleup.shadow' version '9.6.1' } repositories { diff --git a/settings.gradle b/settings.gradle index f35be79e6..196a4510a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,8 +5,8 @@ pluginManagement { mavenCentral() } plugins { - id 'com.android.application' version '8.13.2' apply false - id 'com.android.library' version '8.13.2' apply false + id 'com.android.application' version '9.3.2' apply false + id 'com.android.library' version '9.3.2' apply false } } include ':example-app', ':backtrace-library', ':coroner-client', ':gson'