添加Baseline Profile后构建失败:experimentalProperties属性无法修改
多模块Android项目添加Baseline Profile后构建失败:experimentalProperties属性不可修改异常
在多模块Android项目中集成Baseline Profile后,构建过程抛出以下异常:
java.lang.IllegalStateException: The value for property 'experimentalProperties' is final and cannot be changed any further
项目配置详情
- AGP版本:
com.android.tools.build:gradle:8.7.2 - Baseline Profile插件:
id 'androidx.baselineprofile' version '1.3.3' apply false - Gradle版本:8.9
完整报错堆栈
Caused by: java.lang.IllegalStateException: The value for property 'experimentalProperties' is final and cannot be changed any further. at org.gradle.api.internal.provider.ValueState$FinalizedValue.beforeMutate(ValueState.java:363) at org.gradle.api.internal.provider.AbstractProperty.assertCanMutate(AbstractProperty.java:371) at org.gradle.api.internal.provider.DefaultMapProperty.addExplicitCollector(DefaultMapProperty.java:226) at org.gradle.api.internal.provider.DefaultMapProperty.access$600(DefaultMapProperty.java:59) at org.gradle.api.internal.provider.DefaultMapProperty$Configurer.addCollector(DefaultMapProperty.java:710) at org.gradle.api.internal.provider.DefaultMapProperty$Configurer.put(DefaultMapProperty.java:716) at org.gradle.api.internal.provider.DefaultMapProperty.put(DefaultMapProperty.java:187) at androidx.baselineprofile.gradle.consumer.BaselineProfileConsumerAgpPlugin.onVariants(BaselineProfileConsumerPlugin.kt:207) at androidx.baselineprofile.gradle.utils.AgpPlugin$configureWithAndroidPlugin$4$3.invoke(AgpPlugin.kt:176) at androidx.baselineprofile.gradle.utils.AgpPlugin$configureWithAndroidPlugin$4$3.invoke(AgpPlugin.kt:174) at com.android.build.api.extension.impl.AndroidComponentsExtensionImpl$onVariants$1.execute(AndroidComponentsExtensionImpl.kt:75) at com.android.build.api.extension.impl.AndroidComponentsExtensionImpl$onVariants$1.execute(AndroidComponentsExtensionImpl.kt:74) at com.android.build.api.extension.impl.OperationsRegistrar.executeOperations(OperationsRegistrar.kt:60) at com.android.build.gradle.internal.VariantManager$createVariantsFromCombination$8.invoke(VariantManager.kt:978) at com.android.build.gradle.internal.VariantManager$createVariantsFromCombination$8.invoke(VariantManager.kt:975) at com.android.build.gradle.internal.VariantManager.computeVariants(VariantManager.kt:239) at com.android.build.gradle.internal.VariantManager.createVariants(VariantManager.kt:189) at com.android.build.gradle.internal.plugins.BasePlugin.createAndroidTasks(BasePlugin.kt:715) at com.android.build.gradle.internal.plugins.BasePlugin$createTasks$2$1.call(BasePlugin.kt:599) at com.android.build.gradle.internal.profile.NoOpAnalyticsConfiguratorService.recordBlock(NoOpAnalyticsConfiguratorService.kt:57) at com.android.build.gradle.internal.plugins.BasePlugin$createTasks$2.accept(BasePlugin.kt:594) at com.android.build.gradle.internal.plugins.BasePlugin$createTasks$2.accept(BasePlugin.kt:591) at com.android.build.gradle.internal.crash.CrashReporting$afterEvaluate$1.execute(crash_reporting.kt:37) at com.android.build.gradle.internal.crash.CrashReporting$afterEvaluate$1.execute(crash_reporting.kt:35) at org.gradle.internal.code.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:124) at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1.run(DefaultListenerBuildOperationDecorator.java:173) 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$2.execute(DefaultBuildOperationRunner.java:66) at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59) at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47) at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction.execute(DefaultListenerBuildOperationDecorator.java:170) at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:99) at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:87) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:268) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:170) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:84) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:70) at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:380) at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:272) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:148) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:92) at jdk.proxy1/jdk.proxy1.$Proxy60.afterEvaluate(Unknown Source) at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:247) at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate$1.execute(LifecycleProjectEvaluator.java:244) at org.gradle.api.internal.project.DefaultProject.stepEvaluationListener(DefaultProject.java:1459) at org.gradle.configuration.project.LifecycleProjectEvaluator$NotifyAfterEvaluate.run(LifecycleProjectEvaluator.java:253) ... 146 more
问题原因
该异常是由于Baseline Profile 1.3.3版本未适配AGP 8.7.x与Gradle 8.9的组合,插件在项目评估后期尝试修改已被锁定为final的experimentalProperties属性,触发了Gradle的属性不可修改校验。
解决方案
1. 升级Baseline Profile插件版本
将Baseline Profile插件升级到1.4.0及以上版本,该版本已修复此兼容性问题。修改项目根目录的settings.gradle或build.gradle中的插件声明:
id 'androidx.baselineprofile' version '1.4.0' apply false
2. 确认插件应用顺序
在模块的build.gradle中,确保Baseline Profile插件在Android插件之后应用,避免在错误阶段触发属性修改:
plugins { id 'com.android.application' // 或 com.android.library id 'androidx.baselineprofile' }
3. 验证版本组合兼容性
如果升级插件后问题仍存在,可以尝试调整AGP或Gradle版本,保持三者版本的兼容性:
- 将AGP升级到8.8.x版本
- 或将Gradle版本调整为8.8版本
内容的提问来源于stack exchange,提问作者Arka Prava Basu
相关产品推荐
相关产品推荐

