Status Update
Comments
bi...@google.com <bi...@google.com>
jv...@google.com <jv...@google.com>
ga...@google.com <ga...@google.com>
au...@google.com <au...@google.com> #2
Branch: androidx-main
commit 7b17505c2e3679330cf386efe69f1aa95b6ae9e9
Author: Jeremy Woods <jbwoods@google.com>
Date: Thu Jan 06 14:47:42 2022
Update safeArgs to AGP 7.0.4
Updating safeArgs to depend on AGP 7.0.4.
Removing the use of reflection from the plugin since we no longer
needed.
RelNote: "Safe Args now depends on Android Gradle Plugin version 7.0.4.
This means that Navigation Safe Args will no longer be compatible with
Android Studio versions prior to 7.0."
Test: ./gradlew --rerun-tasks navigation:navigation-safe-args-gradle-plugin:test
Bug: 213086135
Bug: 207670704
Change-Id: I41c88ee06ad827c61cb1bbdc5ba58b3d56155caf
M navigation/navigation-safe-args-gradle-plugin/build.gradle
M navigation/navigation-safe-args-gradle-plugin/src/main/kotlin/androidx/navigation/safeargs/gradle/SafeArgsPlugin.kt
bi...@google.com <bi...@google.com> #3
Do you know if I can try this out in a snapshot or has it been published under a version name? (sorry, things in gerrit still confuse me so maybe its already clear that this is fixed and shipped!)
au...@google.com <au...@google.com> #4
Yes, you can follow the
ga...@google.com <ga...@google.com> #6
Yay. I can confirm that your fix worked. Thanks! And you were able to beat out the firebase perf plugin in getting a fix released. Thank you! This unblocks my team!
Heads up what I had to do. add the maven repo to buildscript repos
buildscript {
repositories {
google()
mavenCentral()
maven("https://androidx.dev/snapshots/builds/8054565/artifacts/repository")
}
}
then update the plugin to
classpath("androidx.navigation:navigation-safe-args-gradle-plugin:2.5.0-SNAPSHOT")
I don't know whether I should update the rest of my nav deps to 2.5.0 snapshot, but this'll do for now.
bi...@google.com <bi...@google.com> #7
Generally, if possible, you should keep your safe args and other nav dependencies in sync just in case there are dependent changes in either module.
But for that particular build ID, this is the only difference between 2.4.0-rc01
and 2.5.0
so if you wanted to keep it as is, there should not be any issues.
sp...@google.com <sp...@google.com> #9
Really? Releasing AGP without being sure home-made libraries are working? ... next this seems to break androidx.core dependency Compiler stops with
public class MyActivity extends AppCompatActivity {
^
class file for androidx.core.content.OnConfigurationChangedProvider not found
because of other changes in androidx.navigation:2.5.0-alpha01 ?!
#madeMyDay ;(
sp...@google.com <sp...@google.com> #11
Please file an issue with a minimal sample project against the
sp...@google.com <sp...@google.com> #12
might you have unintentionally updated your navigation dependencies
yes, typically I update the nav_version field as proposed documented
I updated AGP from 7.0(.3) to 7.1.0 which forced me to then update navigation stack including safeargs (to 2.5.0alpha01) - you know why, and anyhow I updated updated kotlin from 1.5.30 to 1.6.10 - because this changed too in new AGP databinding deps - before or after, I ran into this compiler mess someone (and I doubt it is the new safeargs) somehow looks for the OnConfigurationChangeProvider which is not released with 2.4.0
It would be more helpful to me if s.o. can validate (or INvalidate) if safeArgs has it's finger in fire or somehow it's transitive dependencies.. yes, perhaps safeargs is not the guilty one in this case just the one I can blame on to be in the front row today. Sorry for that
Feedback you might take with to your next teams of teams: main purpose of this rant is to document the pain your uncoordinated releases in the androidx universe causes in the real world aside some unrealistic, "minimal sample projects" noone has the time to provide. Why don't you provide - "Eat your own dogfood" - US some sample projects that integrate all androidx components without dep problems on an active stable AGP and IntelliJ/Studio on a regular schedule when some androidx team releases a new version. Sounds unrealistic? - so it is to us! The more components your teams release with each transitive-cross dependencies, it's unlikely up to impossible to do regular project maintenance without spending nightmare hours in dependency management!
sp...@google.com <sp...@google.com> #13
^
class file for androidx.core.content.OnConfigurationChangedProvider not found
got the same error as you, i tried upgrading agp to 7.1 but it doesn't seem to work
au...@google.com <au...@google.com> #14
Navigation 2.5.0
depends on the newest Activity, which depends on the newest core version were those APIs exist.
If you don't wish to upgrade your core version, you can use the Navigation 2.4.1
release which fixes this bug directly without any other included changes.
au...@google.com <au...@google.com> #15
Here is a stacktrace from AGP 8.2.0-alpha15 / Gradle 8.3-rc-1
fileExists:380, Instrumented (org.gradle.internal.classpath)
intercept_exists:71, FileInterceptorsDeclaration (org.gradle.internal.classpath.declarations)
settingsFileExists:424, AnalyticsSettings (com.android.tools.analytics)
needToInitializeAnalytics:200, ProjectOptions (com.android.build.gradle.options)
isAnalyticsEnabled:180, ProjectOptions (com.android.build.gradle.options)
basePluginApply:123, AndroidPluginBaseServices (com.android.build.gradle.internal.plugins)
run:348, BasePlugin$apply$1 (com.android.build.gradle.internal.plugins)
runAction:27, CrashReporting (com.android.build.gradle.internal.crash)
apply:347, BasePlugin (com.android.build.gradle.internal.plugins)
apply:126, BasePlugin (com.android.build.gradle.internal.plugins)
applyImperative:43, ImperativeOnlyPluginTarget (org.gradle.api.internal.plugins)
applyImperative:51, RuleBasedPluginTarget (org.gradle.api.internal.plugins)
addPlugin:187, DefaultPluginManager (org.gradle.api.internal.plugins)
access$100:52, DefaultPluginManager (org.gradle.api.internal.plugins)
run:282, DefaultPluginManager$AddPluginBuildOperation (org.gradle.api.internal.plugins)
execute:29, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:26, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:47, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:68, DefaultBuildOperationExecutor (org.gradle.internal.operations)
lambda$doApply$0:167, DefaultPluginManager (org.gradle.api.internal.plugins)
execute:-1, DefaultPluginManager$$Lambda$772/0x0000000801239068 (org.gradle.api.internal.plugins)
apply:44, DefaultUserCodeApplicationContext (org.gradle.configuration.internal)
doApply:166, DefaultPluginManager (org.gradle.api.internal.plugins)
apply:146, DefaultPluginManager (org.gradle.api.internal.plugins)
applyType:161, DefaultObjectConfigurationAction (org.gradle.api.internal.plugins)
access$200:43, DefaultObjectConfigurationAction (org.gradle.api.internal.plugins)
run:98, DefaultObjectConfigurationAction$3 (org.gradle.api.internal.plugins)
execute:184, DefaultObjectConfigurationAction (org.gradle.api.internal.plugins)
apply:49, AbstractPluginAware (org.gradle.api.internal.project)
apply:28, LibraryPlugin (com.android.build.gradle)
apply:24, LibraryPlugin (com.android.build.gradle)
applyImperative:43, ImperativeOnlyPluginTarget (org.gradle.api.internal.plugins)
applyImperative:51, RuleBasedPluginTarget (org.gradle.api.internal.plugins)
addPlugin:187, DefaultPluginManager (org.gradle.api.internal.plugins)
access$100:52, DefaultPluginManager (org.gradle.api.internal.plugins)
run:282, DefaultPluginManager$AddPluginBuildOperation (org.gradle.api.internal.plugins)
execute:29, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:26, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:47, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:68, DefaultBuildOperationExecutor (org.gradle.internal.operations)
lambda$doApply$0:167, DefaultPluginManager (org.gradle.api.internal.plugins)
execute:-1, DefaultPluginManager$$Lambda$772/0x0000000801239068 (org.gradle.api.internal.plugins)
apply:44, DefaultUserCodeApplicationContext (org.gradle.configuration.internal)
doApply:166, DefaultPluginManager (org.gradle.api.internal.plugins)
apply:137, DefaultPluginManager (org.gradle.api.internal.plugins)
lambda$applyPlugin$1:148, DefaultPluginRequestApplicator (org.gradle.plugin.use.internal)
run:-1, DefaultPluginRequestApplicator$$Lambda$2374/0x00000008018feae0 (org.gradle.plugin.use.internal)
applyPlugin:199, DefaultPluginRequestApplicator (org.gradle.plugin.use.internal)
applyPlugin:146, DefaultPluginRequestApplicator (org.gradle.plugin.use.internal)
access$200:60, DefaultPluginRequestApplicator (org.gradle.plugin.use.internal)
lambda$add$1:119, DefaultPluginRequestApplicator$1$1 (org.gradle.plugin.use.internal)
accept:-1, DefaultPluginRequestApplicator$1$1$$Lambda$2372/0x00000008018fe670 (org.gradle.plugin.use.internal)
lambda$applyPlugins$0:142, DefaultPluginRequestApplicator (org.gradle.plugin.use.internal)
accept:-1, DefaultPluginRequestApplicator$$Lambda$2373/0x00000008018fe8a8 (org.gradle.plugin.use.internal)
forEach:75, Iterable (java.lang)
applyPlugins:142, DefaultPluginRequestApplicator (org.gradle.plugin.use.internal)
apply:117, DefaultScriptPluginFactory$ScriptPluginImpl (org.gradle.configuration)
run:65, BuildOperationScriptPlugin$1 (org.gradle.configuration)
execute:29, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:26, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:47, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:68, DefaultBuildOperationExecutor (org.gradle.internal.operations)
lambda$apply$0:62, BuildOperationScriptPlugin (org.gradle.configuration)
execute:-1, BuildOperationScriptPlugin$$Lambda$405/0x000000080107f8b8 (org.gradle.configuration)
apply:44, DefaultUserCodeApplicationContext (org.gradle.configuration.internal)
apply:62, BuildOperationScriptPlugin (org.gradle.configuration)
accept:-1, BuildScriptProcessor$$Lambda$1367/0x00000008015823a0 (org.gradle.configuration.project)
lambda$applyToMutableState$1:395, DefaultProjectStateRegistry$ProjectStateImpl (org.gradle.api.internal.project)
apply:-1, DefaultProjectStateRegistry$ProjectStateImpl$$Lambda$1309/0x0000000801536908 (org.gradle.api.internal.project)
fromMutableState:413, DefaultProjectStateRegistry$ProjectStateImpl (org.gradle.api.internal.project)
applyToMutableState:394, DefaultProjectStateRegistry$ProjectStateImpl (org.gradle.api.internal.project)
execute:46, BuildScriptProcessor (org.gradle.configuration.project)
execute:27, BuildScriptProcessor (org.gradle.configuration.project)
evaluate:35, ConfigureActionsProjectEvaluator (org.gradle.configuration.project)
lambda$run$0:109, LifecycleProjectEvaluator$EvaluateProject (org.gradle.configuration.project)
accept:-1, LifecycleProjectEvaluator$EvaluateProject$$Lambda$1347/0x0000000801568260 (org.gradle.configuration.project)
lambda$applyToMutableState$1:395, DefaultProjectStateRegistry$ProjectStateImpl (org.gradle.api.internal.project)
apply:-1, DefaultProjectStateRegistry$ProjectStateImpl$$Lambda$1309/0x0000000801536908 (org.gradle.api.internal.project)
fromMutableState:413, DefaultProjectStateRegistry$ProjectStateImpl (org.gradle.api.internal.project)
applyToMutableState:394, DefaultProjectStateRegistry$ProjectStateImpl (org.gradle.api.internal.project)
run:100, LifecycleProjectEvaluator$EvaluateProject (org.gradle.configuration.project)
execute:29, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:26, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:47, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:68, DefaultBuildOperationExecutor (org.gradle.internal.operations)
evaluate:72, LifecycleProjectEvaluator (org.gradle.configuration.project)
evaluate:788, DefaultProject (org.gradle.api.internal.project)
evaluate:156, DefaultProject (org.gradle.api.internal.project)
lambda$ensureSelfConfigured$2:84, ProjectLifecycleController (org.gradle.api.internal.project)
run:-1, ProjectLifecycleController$$Lambda$1344/0x0000000801561228 (org.gradle.api.internal.project)
lambda$doTransition$14:255, StateTransitionController (org.gradle.internal.model)
get:-1, StateTransitionController$$Lambda$341/0x00000008010060c8 (org.gradle.internal.model)
doTransition:266, StateTransitionController (org.gradle.internal.model)
doTransition:254, StateTransitionController (org.gradle.internal.model)
lambda$maybeTransitionIfNotCurrentlyTransitioning$10:199, StateTransitionController (org.gradle.internal.model)
run:-1, StateTransitionController$$Lambda$1345/0x0000000801561450 (org.gradle.internal.model)
withLock:34, DefaultSynchronizer (org.gradle.internal.work)
maybeTransitionIfNotCurrentlyTransitioning:195, StateTransitionController (org.gradle.internal.model)
ensureSelfConfigured:84, ProjectLifecycleController (org.gradle.api.internal.project)
ensureConfigured:369, DefaultProjectStateRegistry$ProjectStateImpl (org.gradle.api.internal.project)
configure:33, TaskPathProjectEvaluator (org.gradle.execution)
getSelection:59, DefaultTaskSelector (org.gradle.execution)
resolveTaskName:98, DefaultBuildTaskSelector (org.gradle.execution.selection)
parseTasks:49, CommandLineTaskParser (org.gradle.execution.commandline)
scheduleRequestedTasks:51, TaskNameResolvingBuildTaskScheduler (org.gradle.execution)
scheduleRequestedTasks:72, DefaultTasksBuildTaskScheduler (org.gradle.execution)
lambda$scheduleRequestedTasks$0:46, DefaultTaskExecutionPreparer (org.gradle.initialization)
run:-1, DefaultTaskExecutionPreparer$$Lambda$1748/0x00000008017f6d60 (org.gradle.initialization)
create:31, Factories$1 (org.gradle.internal)
withReplacedLocks:360, DefaultWorkerLeaseService (org.gradle.internal.work)
withMutableStateOfAllProjects:228, DefaultProjectStateRegistry$DefaultBuildProjectRegistry (org.gradle.api.internal.project)
withMutableStateOfAllProjects:221, DefaultProjectStateRegistry$DefaultBuildProjectRegistry (org.gradle.api.internal.project)
scheduleRequestedTasks:45, DefaultTaskExecutionPreparer (org.gradle.initialization)
lambda$scheduleRequestedTasks$0:76, VintageBuildModelController (org.gradle.initialization)
run:-1, VintageBuildModelController$$Lambda$1747/0x00000008017f6b38 (org.gradle.initialization)
lambda$inState$1:99, StateTransitionController (org.gradle.internal.model)
get:-1, StateTransitionController$$Lambda$300/0x0000000800fd08a0 (org.gradle.internal.model)
lambda$inState$2:114, StateTransitionController (org.gradle.internal.model)
create:-1, StateTransitionController$$Lambda$301/0x0000000800fd0ac8 (org.gradle.internal.model)
withLock:44, DefaultSynchronizer (org.gradle.internal.work)
inState:110, StateTransitionController (org.gradle.internal.model)
inState:98, StateTransitionController (org.gradle.internal.model)
scheduleRequestedTasks:76, VintageBuildModelController (org.gradle.initialization)
scheduleRequestedTasks:55, ConfigurationCacheAwareBuildModelController (org.gradle.configurationcache)
addRequestedTasks:351, DefaultBuildLifecycleController$DefaultWorkGraphBuilder (org.gradle.internal.build)
lambda$scheduleRequestedTasks$0:41, DefaultBuildTreeWorkPreparer (org.gradle.internal.buildtree)
accept:-1, DefaultBuildTreeWorkPreparer$$Lambda$1744/0x00000008017e7d08 (org.gradle.internal.buildtree)
lambda$populateWorkGraph$7:186, DefaultBuildLifecycleController (org.gradle.internal.build)
accept:-1, DefaultBuildLifecycleController$$Lambda$1746/0x00000008017f6228 (org.gradle.internal.build)
populateWorkGraph:42, DefaultBuildWorkPreparer (org.gradle.internal.build)
populateTaskGraph:106, BuildOperationFiringBuildWorkPreparer$PopulateWorkGraph (org.gradle.internal.build)
run:92, BuildOperationFiringBuildWorkPreparer$PopulateWorkGraph (org.gradle.internal.build)
execute:29, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:26, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:47, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:68, DefaultBuildOperationExecutor (org.gradle.internal.operations)
populateWorkGraph:67, BuildOperationFiringBuildWorkPreparer (org.gradle.internal.build)
lambda$populateWorkGraph$8:186, DefaultBuildLifecycleController (org.gradle.internal.build)
run:-1, DefaultBuildLifecycleController$$Lambda$1745/0x00000008017f6000 (org.gradle.internal.build)
lambda$inState$1:99, StateTransitionController (org.gradle.internal.model)
get:-1, StateTransitionController$$Lambda$300/0x0000000800fd08a0 (org.gradle.internal.model)
lambda$inState$2:114, StateTransitionController (org.gradle.internal.model)
create:-1, StateTransitionController$$Lambda$301/0x0000000800fd0ac8 (org.gradle.internal.model)
withLock:44, DefaultSynchronizer (org.gradle.internal.work)
inState:110, StateTransitionController (org.gradle.internal.model)
inState:98, StateTransitionController (org.gradle.internal.model)
populateWorkGraph:186, DefaultBuildLifecycleController (org.gradle.internal.build)
populateWorkGraph:169, DefaultBuildWorkGraphController$DefaultBuildWorkGraph (org.gradle.internal.build)
populateWorkGraph:76, DefaultBuildController (org.gradle.composite.internal)
withWorkGraph:153, DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraphBuilder (org.gradle.composite.internal)
lambda$scheduleRequestedTasks$1:41, DefaultBuildTreeWorkPreparer (org.gradle.internal.buildtree)
accept:-1, DefaultBuildTreeWorkPreparer$$Lambda$1740/0x00000008017e5920 (org.gradle.internal.buildtree)
run:209, DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraph$1 (org.gradle.composite.internal)
execute:29, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:26, DefaultBuildOperationRunner$1 (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:47, DefaultBuildOperationRunner (org.gradle.internal.operations)
run:68, DefaultBuildOperationExecutor (org.gradle.internal.operations)
scheduleWork:204, DefaultIncludedBuildTaskGraph$DefaultBuildTreeWorkGraph (org.gradle.composite.internal)
scheduleRequestedTasks:37, DefaultBuildTreeWorkPreparer (org.gradle.internal.buildtree)
invoke:46, ConfigurationCacheAwareBuildTreeWorkController$scheduleAndRunRequestedTasks$executionResult$1$result$1 (org.gradle.configurationcache)
invoke:45, ConfigurationCacheAwareBuildTreeWorkController$scheduleAndRunRequestedTasks$executionResult$1$result$1 (org.gradle.configurationcache)
invoke:137, DefaultConfigurationCache$loadOrScheduleRequestedTasks$1 (org.gradle.configurationcache)
invoke:136, DefaultConfigurationCache$loadOrScheduleRequestedTasks$1 (org.gradle.configurationcache)
runWorkThatContributesToCacheEntry:303, DefaultConfigurationCache (org.gradle.configurationcache)
loadOrScheduleRequestedTasks:136, DefaultConfigurationCache (org.gradle.configurationcache)
apply:45, ConfigurationCacheAwareBuildTreeWorkController$scheduleAndRunRequestedTasks$executionResult$1 (org.gradle.configurationcache)
apply:44, ConfigurationCacheAwareBuildTreeWorkController$scheduleAndRunRequestedTasks$executionResult$1 (org.gradle.configurationcache)
withNewWorkGraph:112, DefaultIncludedBuildTaskGraph (org.gradle.composite.internal)
scheduleAndRunRequestedTasks:44, ConfigurationCacheAwareBuildTreeWorkController (org.gradle.configurationcache)
lambda$scheduleAndRunTasks$1:68, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
get:-1, DefaultBuildTreeLifecycleController$$Lambda$303/0x0000000800fd1410 (org.gradle.internal.buildtree)
lambda$runBuild$4:98, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
get:-1, DefaultBuildTreeLifecycleController$$Lambda$304/0x0000000800fd1638 (org.gradle.internal.buildtree)
lambda$transition$6:169, StateTransitionController (org.gradle.internal.model)
get:-1, StateTransitionController$$Lambda$306/0x0000000800fd1a88 (org.gradle.internal.model)
doTransition:266, StateTransitionController (org.gradle.internal.model)
lambda$transition$7:169, StateTransitionController (org.gradle.internal.model)
create:-1, StateTransitionController$$Lambda$305/0x0000000800fd1860 (org.gradle.internal.model)
withLock:44, DefaultSynchronizer (org.gradle.internal.work)
transition:169, StateTransitionController (org.gradle.internal.model)
runBuild:95, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
scheduleAndRunTasks:68, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
scheduleAndRunTasks:63, DefaultBuildTreeLifecycleController (org.gradle.internal.buildtree)
run:53, BuildModelActionRunner (org.gradle.tooling.internal.provider.runner)
run:35, ChainingBuildActionRunner (org.gradle.launcher.exec)
run:49, ProblemReportingBuildActionRunner (org.gradle.internal.buildtree)
run:65, BuildOutcomeReportingBuildActionRunner (org.gradle.launcher.exec)
run:140, FileSystemWatchingBuildActionRunner (org.gradle.tooling.internal.provider)
run:41, BuildCompletionNotifyingBuildActionRunner (org.gradle.launcher.exec)
lambda$execute$0:40, RootBuildLifecycleBuildActionExecutor (org.gradle.launcher.exec)
apply:-1, RootBuildLifecycleBuildActionExecutor$$Lambda$296/0x0000000800fc4228 (org.gradle.launcher.exec)
run:123, DefaultRootBuildState (org.gradle.composite.internal)
execute:40, RootBuildLifecycleBuildActionExecutor (org.gradle.launcher.exec)
execute:58, InitDeprecationLoggingActionExecutor (org.gradle.internal.buildtree)
execute:40, DefaultBuildTreeContext (org.gradle.internal.buildtree)
lambda$execute$0:65, BuildTreeLifecycleBuildActionExecutor (org.gradle.launcher.exec)
apply:-1, BuildTreeLifecycleBuildActionExecutor$$Lambda$175/0x0000000800e3d8a0 (org.gradle.launcher.exec)
run:58, BuildTreeState (org.gradle.internal.buildtree)
execute:65, BuildTreeLifecycleBuildActionExecutor (org.gradle.launcher.exec)
call:61, RunAsBuildOperationBuildActionExecutor$3 (org.gradle.launcher.exec)
call:57, RunAsBuildOperationBuildActionExecutor$3 (org.gradle.launcher.exec)
execute:204, DefaultBuildOperationRunner$CallableBuildOperationWorker (org.gradle.internal.operations)
execute:199, DefaultBuildOperationRunner$CallableBuildOperationWorker (org.gradle.internal.operations)
execute:66, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner$2 (org.gradle.internal.operations)
execute:157, DefaultBuildOperationRunner (org.gradle.internal.operations)
execute:59, DefaultBuildOperationRunner (org.gradle.internal.operations)
call:53, DefaultBuildOperationRunner (org.gradle.internal.operations)
call:73, DefaultBuildOperationExecutor (org.gradle.internal.operations)
execute:57, RunAsBuildOperationBuildActionExecutor (org.gradle.launcher.exec)
lambda$execute$0:36, RunAsWorkerThreadBuildActionExecutor (org.gradle.launcher.exec)
create:-1, RunAsWorkerThreadBuildActionExecutor$$Lambda$172/0x0000000800e15fa0 (org.gradle.launcher.exec)
withLocks:264, DefaultWorkerLeaseService (org.gradle.internal.work)
runAsWorkerThread:128, DefaultWorkerLeaseService (org.gradle.internal.work)
execute:36, RunAsWorkerThreadBuildActionExecutor (org.gradle.launcher.exec)
execute:110, ContinuousBuildActionExecutor (org.gradle.tooling.internal.provider.continuous)
execute:64, SubscribableBuildActionExecutor (org.gradle.tooling.internal.provider)
execute:46, DefaultBuildSessionContext (org.gradle.internal.session)
apply:92, BuildSessionLifecycleBuildActionExecuter$ActionImpl (org.gradle.tooling.internal.provider)
apply:80, BuildSessionLifecycleBuildActionExecuter$ActionImpl (org.gradle.tooling.internal.provider)
run:69, BuildSessionState (org.gradle.internal.session)
execute:62, BuildSessionLifecycleBuildActionExecuter (org.gradle.tooling.internal.provider)
execute:41, BuildSessionLifecycleBuildActionExecuter (org.gradle.tooling.internal.provider)
execute:64, StartParamsValidatingActionExecuter (org.gradle.tooling.internal.provider)
execute:32, StartParamsValidatingActionExecuter (org.gradle.tooling.internal.provider)
execute:51, SessionFailureReportingActionExecuter (org.gradle.tooling.internal.provider)
execute:39, SessionFailureReportingActionExecuter (org.gradle.tooling.internal.provider)
execute:47, SetupLoggingActionExecuter (org.gradle.tooling.internal.provider)
execute:31, SetupLoggingActionExecuter (org.gradle.tooling.internal.provider)
doBuild:65, ExecuteBuild (org.gradle.launcher.daemon.server.exec)
execute:37, BuildCommandOnly (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
execute:39, WatchForDisconnection (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
execute:29, ResetDeprecationLogger (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
execute:35, RequestStopIfSingleUsedDaemon (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
create:78, ForwardClientInput$2 (org.gradle.launcher.daemon.server.exec)
create:75, ForwardClientInput$2 (org.gradle.launcher.daemon.server.exec)
swap:38, Swapper (org.gradle.util.internal)
execute:75, ForwardClientInput (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
execute:64, LogAndCheckHealth (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
doBuild:63, LogToClient (org.gradle.launcher.daemon.server.exec)
execute:37, BuildCommandOnly (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
doBuild:84, EstablishBuildEnvironment (org.gradle.launcher.daemon.server.exec)
execute:37, BuildCommandOnly (org.gradle.launcher.daemon.server.exec)
proceed:104, DaemonCommandExecution (org.gradle.launcher.daemon.server.api)
run:52, StartBuildOrRespondWithBusy$1 (org.gradle.launcher.daemon.server.exec)
run:297, DaemonStateCoordinator$1 (org.gradle.launcher.daemon.server)
onExecute:64, ExecutorPolicy$CatchAndRecordFailures (org.gradle.internal.concurrent)
run:47, AbstractManagedExecutor$1 (org.gradle.internal.concurrent)
runWorker:1136, ThreadPoolExecutor (java.util.concurrent)
run:635, ThreadPoolExecutor$Worker (java.util.concurrent)
run:833, Thread (java.lang)
ga...@google.com <ga...@google.com> #16
This location is still in
Error.fileSystemEntry(
location = "android_prefs_root/analytics.settings",
name = "analytics.settings"
),
so it seems like this bug was incorrectly marked as fixed.
bi...@google.com <bi...@google.com> #17
re #16, the fix for analytics.settings
is to not creating that file unless we have to. see
In our integration tests, there are cases(e.g. AnalyticsConfigurationCachingTest) we need to create this file, therefore you would get
However, in general, androidx shouldn't see this issue. I will chat more with Scott next week.
ga...@google.com <ga...@google.com> #18
Considering there is a workaround (to allow-list this file) moving this to I beta blocking.
je...@google.com <je...@google.com> #19
Bingran asked me if I had any insights about this issue and mentioned that Aurimas didn't manage to reproduce it locally and suspected that it only happened in an incremental build.
I'm still investigating, but I notice a non-incremental build that failed on Aurimas's change from
for
je...@google.com <je...@google.com> #20
bi...@google.com <bi...@google.com> #21
In terms of #20, I think that is expected because we normally see config cache miss if a file is created during configuration. However, if a file get modified, I assume it would say xxx has been modified.
je...@google.com <je...@google.com> #22
This debugging change says that:
analytics.settings was written at:
2023-08-30 20:08:54.977482090 +0000
first Gradle start at Wed Aug 30 20:03:28 UTC 2023
first Gradle end at Wed Aug 30 20:09:35 UTC 2023
It looks like something in the first build wrote this file somewhat near the end of the build
Specifically, about 5m26s - 5m27s after the start of the build and 40s-41s before the end of the build
Resulting scan:
I see a few tasks that started in this build scan at approximately 5m26s, mostly lint-related.
I'll see if I can get more details
je...@google.com <je...@google.com> #23
I checked some timestamps again in aosp/2731437
Gradle started at 21:01:18 UTC 2023
Gradle completed at 21:07:21 UTC 2023
analytics.settings created at 21:05:35.748195543
4m17s after Gradle started
1m46s before Gradle ended
Uploaded the scan to
I see a few tasks running in that scan around 4m17s, mostly but not exclusively lint
je...@google.com <je...@google.com> #24
I just tried this command:
OUT_DIR=../../out DIST_DIR=../../out/dist ./busytown/androidx_compose_multiplatform.sh
and found that that reproduced the error on my computer. Maybe we can simplify it from there
sp...@google.com <sp...@google.com> #25
I see a few tasks running in that scan around 4m17s, mostly but not exclusively lint
I took a look at my previous lint fix after seeing this.
I think the problem might be that LintClient.isGradle
might not always be true when running the lint tasks, in which case
LintClient.isGradle
should be true when running lint tasks from Gradle because we invoke lint with --client-id gradle
, but when I run grep -r "client=\""
on the AndroidX codebase, I see a mix of client="gradle"
and client="cli"
, which suggests to me that the client id is being reset in some cases.
je...@google.com <je...@google.com> #26
I ran this command:
rm ../../out -rf && OUT_DIR=../../out DIST_DIR=../../out/dist ./gradlew lintAnalyzeDebug -Pandroidx.verifyUpToDate
and it created ../../out/.gradle/.android/analytics.settings
but when I ran this command
rm ../../out -rf && OUT_DIR=../../out DIST_DIR=../../out/dist ./gradlew lintAnalyzeDebug -Pandroidx.verifyUpToDate --max-workers 1
it didn't create ../../out/.gradle/.android/analytics.settings
so it could be that reproducing the error requires running certain tasks at the same time
je...@google.com <je...@google.com> #27
Combining
I think lint runs inside the Gradle Daemon JVM process - is that right?
I notice LintClient.kt mentions “@JvmStatic lateinit var clientName: String”. I think that means multiple lint clients might be able to overwrite each others’ values?
Maybe I can figure out which tasks set the lint client to something else
bi...@google.com <bi...@google.com>
je...@google.com <je...@google.com> #30
Thanks!
I investigated a little bit more into the plausibility of our guess (parallel lint invocations causing incorrect client) and it seems to be holding up:
1: I notice that aosp/2724176 changes some clients from "cli" to "gradle" for example
2: I regenerated all of the lint baselines via echo | tee
find -name lint-baseline.xml && ./gradlew updateLintBaseline --max-workers=1
and found that it put 'client="gradle"' into the resulting files
I'll check again later after updating to the corresponding AGP
sp...@google.com <sp...@google.com> #31
Thanks again Jeff!
Reassigning back to Bingran assuming the lint issue has been resolved.
In our integration tests, there are cases(e.g. AnalyticsConfigurationCachingTest) we need to create this file, therefore you would get config cache miss. So it is intended that we still have an entry in ConfigurationCacheReportChecker.
Unfortunately, yes, AnalyticsSettings
is still interacting with the file in a way that is not compatible with configuration caching.
sp...@google.com <sp...@google.com>
an...@google.com <an...@google.com> #33
Thank you for your patience while our engineering team worked to resolve this issue. A fix for this issue is now available in:
- Android Studio Hedgehog | 2023.1.1 Beta 4
- Android Gradle Plugin 8.2.0-beta04
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
Thank you for taking the time to submit feedback — we really appreciate it!
an...@google.com <an...@google.com> #34
The fixes for this issue are now also available in:
- Android Studio Iguana | 2023.2.1 Canary 4
- Android Gradle Plugin 8.3.0-alpha04
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
jf...@block.xyz <jf...@block.xyz> #35
In Gradle 8.3 we are ignoring this file with the following in gradle.properties
:
org.gradle.configuration-cache.inputs.unsafe.ignore.file-system-checks=**/.gradle/.android/analytics.settings
However, the AnalyticsService still breaks configuration on demand for some people:
> Failed to apply plugin 'com.android.internal.library'.
> Accessing GradleBuildProject.Builder through AnalyticsConfiguratorService is not allowed after AnalyticsService is created.
We've found that setting "hasOptedIn":false,"
in ~.gradle/.android/analytics.settings
fixes the issue.
sp...@google.com <sp...@google.com> #36
Re: #35, that looks like
mf...@gmail.com <mf...@gmail.com> #37
وجيهكم خلوني في حالي ..ماهو مقر.طالب
Description
DESCRIBE THE ISSUE IN DETAIL:
STEPS TO REPRODUCE:
./busytown/androidx_device_tests.sh
Expected
Our build is run twice (for up to dateness validation). Second run uses configuration cache
Actual
Second build does not use configuration cache, it is dropped due to