Skip to content

Firebase perf gradle plugin incomaptible with AGP 8.12.0-alpha07+ #7092

Open
@romtsn

Description

@romtsn

[REQUIRED] Step 2: Describe your environment

  • Android Studio version: ....
  • Firebase Component: Performance Gradle plugin
  • Component version: 1.4.2

[REQUIRED] Step 3: Describe the problem

The firebase-perf plugin is incompatible with AGP 8.12.0-alpha07+, because AGP has removed the GradleVersion class that the plugin relies on in this commit.

The plugin uses it to identify whether it should use the new or old transform APIs:

Image

And since this function will return false now, the plugin will fall back to using the old transform APIs which are long gone since AGP 8+

Image

If you try to run the assembleRelease task, the build will fail with the following exception:

❯ ./gradlew assembleRelease --rerun-tasks --console=plain

FAILURE: Build failed with an exception.

An exception occurred applying plugin request [id: 'com.google.firebase.firebase-perf', version: '1.4.2']
> Failed to apply plugin 'com.google.firebase.firebase-perf'.
   > API 'android.registerTransform' is removed.
     
     For more information, see https://developer.android.com/studio/releases/gradle-plugin-api-updates#transform-api.
     To determine what is calling android.registerTransform, use -Pandroid.debug.obsoleteApi=true on the command line to display more information.

Steps to reproduce:

  1. Create a default project from a template in AS
  2. Add the firebase-perf gradle plugin to the root project
plugins {
  id("com.android.application") version "8.12.0-alpha07" apply false
  id("com.google.firebase.firebase-perf") version "1.4.2" apply false // latest version
}
  1. Apply the firebase plugin to the app module
plugins {
  id("com.android.application")
  id("com.google.firebase.firebase-perf")
}
  1. Run ./gradlew assembleRelease
  2. Observe the build fails with the following exception:
❯ ./gradlew assembleRelease --rerun-tasks --console=plain

FAILURE: Build failed with an exception.

An exception occurred applying plugin request [id: 'com.google.firebase.firebase-perf', version: '1.4.2']
> Failed to apply plugin 'com.google.firebase.firebase-perf'.
   > API 'android.registerTransform' is removed.
     
     For more information, see https://developer.android.com/studio/releases/gradle-plugin-api-updates#transform-api.
     To determine what is calling android.registerTransform, use -Pandroid.debug.obsoleteApi=true on the command line to display more information.

Now downgrade the AGP version to 8.12.0-alpha06 and run ./gradlew assembleRelease and observe the build succeeds:

❯ ./gradlew assembleRelease --rerun-tasks --console=plain
> Task :app:preBuild UP-TO-DATE
> Task :app:preReleaseBuild UP-TO-DATE
> Task :app:mergeReleaseJniLibFolders
> Task :app:mergeReleaseNativeLibs NO-SOURCE
> Task :app:stripReleaseDebugSymbols NO-SOURCE
> Task :app:extractReleaseNativeSymbolTables NO-SOURCE
> Task :app:mergeReleaseNativeDebugMetadata NO-SOURCE
> Task :app:checkReleaseDuplicateClasses
> Task :app:buildKotlinToolingMetadata
> Task :app:checkKotlinGradlePluginConfigurationErrors SKIPPED
> Task :app:generateReleaseResValues
> Task :app:checkReleaseAarMetadata
> Task :app:mapReleaseSourceSetPaths
> Task :app:generateReleaseResources
> Task :app:packageReleaseResources
> Task :app:createReleaseCompatibleScreenManifests
> Task :app:extractDeepLinksRelease
> Task :app:parseReleaseLocalResources
> Task :app:mergeReleaseResources
> Task :app:processReleaseMainManifest
> Task :app:processReleaseManifest
> Task :app:javaPreCompileRelease
> Task :app:desugarReleaseFileDependencies
> Task :app:mergeReleaseStartupProfile
> Task :app:processReleaseManifestForPackage
> Task :app:mergeReleaseShaders
> Task :app:compileReleaseShaders NO-SOURCE
> Task :app:generateReleaseAssets UP-TO-DATE
> Task :app:mergeReleaseArtProfile
> Task :app:mergeReleaseAssets
> Task :app:compressReleaseAssets
> Task :app:extractReleaseVersionControlInfo
> Task :app:extractProguardFiles
> Task :app:collectReleaseDependencies
> Task :app:sdkReleaseDependencyData
> Task :app:writeReleaseAppMetadata
> Task :app:writeReleaseSigningConfigVersions
> Task :app:processReleaseResources
> Task :app:optimizeReleaseResources
> Task :app:compileReleaseKotlin
> Task :app:compileReleaseJavaWithJavac NO-SOURCE
> Task :app:transformReleaseClassesWithAsm
> Task :app:mergeExtDexRelease
> Task :app:generateReleaseLintVitalReportModel
> Task :app:dexBuilderRelease
> Task :app:mergeReleaseGlobalSynthetics
> Task :app:mergeDexRelease
> Task :app:processReleaseJavaRes
> Task :app:compileReleaseArtProfile
> Task :app:mergeReleaseJavaResource
> Task :app:lintVitalAnalyzeRelease
> Task :app:lintVitalReportRelease
> Task :app:lintVitalRelease
> Task :app:packageRelease
> Task :app:createReleaseApkListingFileRedirect
> Task :app:assembleRelease

BUILD SUCCESSFUL in 43s
45 actionable tasks: 45 executed

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions