pedrovgs/Shot

AGP 7.0 Cannot query the value of property 'applicationId'

Open

#247 opened on Jul 29, 2021

 (14 comments) (6 reactions) (0 assignees)Kotlin (111 forks)github user discovery
bughelp wanted

Repository metrics

Stars
 (1,208 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

With current release of AS Arctic Fox and Android Gradle Plugin 7 I tried updating our (library) project to that. Currently our build fails with

java.lang.IllegalStateException: Cannot query the value of property 'applicationId' because configuration of project ':sdk' has not completed yet.

where sdk is our library module. Running ./gradlew build with --stracktrace shows it's coming from Shot:

Caused by: java.lang.IllegalStateException: Cannot query the value of property 'applicationId' because configuration of project ':sdk' has not completed yet.
        at org.gradle.api.internal.provider.AbstractProperty$NonFinalizedValue.maybeFinalizeOnRead(AbstractProperty.java:368)
        at org.gradle.api.internal.provider.AbstractProperty.beforeRead(AbstractProperty.java:229)
        at org.gradle.api.internal.provider.AbstractProperty.calculateOwnValue(AbstractProperty.java:126)
        at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:84)
        at com.android.build.gradle.internal.api.BaseVariantImpl.getApplicationId(BaseVariantImpl.java:235)
        at com.android.build.gradle.internal.api.LibraryVariantImpl_Decorated.getApplicationId(Unknown Source)
        at com.karumi.shot.ShotPlugin.composeCompleteAppId(ShotPlugin.scala:105)
        at com.karumi.shot.ShotPlugin.addTaskToVariant(ShotPlugin.scala:98)
        at com.karumi.shot.ShotPlugin.$anonfun$addTasksToLibraryModule$1(ShotPlugin.scala:76)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:100)
        at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction$1.run(DefaultCollectionCallbackActionDecorator.java:95)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:71)
        at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:71)
        at org.gradle.api.internal.DefaultCollectionCallbackActionDecorator$BuildOperationEmittingAction.execute(DefaultCollectionCallbackActionDecorator.java:92)
        at org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:163)
        at com.karumi.shot.ShotPlugin.addTasksToLibraryModule(ShotPlugin.scala:75)
        at com.karumi.shot.ShotPlugin.addTasks(ShotPlugin.scala:65)
        at com.karumi.shot.ShotPlugin.$anonfun$apply$1(ShotPlugin.scala:51)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:100)

Removing Shot from the project makes it compile again, so I'm pretty certain it's coming from here. Problematic seems the plugin application to the module.

We're pretty much using the default configuration, just applying the plugin to our library module, setting the testInstrumentationRunner and testApplicationId.

I'm not sure if it's related, but we also get a warning

WARNING:API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'.

Version of the library

Shot 5.11.0 AGP 7.0.0 Gradle 7.1.1 Kotlin 1.5.21

Contributor guide