Proto Datastore Jetpack Compose依赖配置Gradle同步异常求助
解决Proto Datastore配置时Gradle同步的"Could not get unknown property 'source'"异常
按照Android官方Codelab配置Proto Datastore依赖后,Gradle同步时抛出以下异常:
A problem occurred configuring project ':app'.
Could not get unknown property 'source' for generate-proto-generateDebugProto of type org.gradle.api.internal.file.DefaultSourceDirectorySet.
异常原因
这个问题的核心是protobuf Gradle插件版本与当前项目使用的Gradle版本不兼容。错误栈指向Protobuf插件的内部逻辑,它尝试访问source属性,但新版本Gradle的DefaultSourceDirectorySet已经移除或重命名了该属性,而旧版protobuf插件仍在调用这个过时的API。
解决方案
方案1:升级protobuf插件到兼容版本
查看项目根目录gradle/wrapper/gradle-wrapper.properties中的Gradle版本,对应选择兼容的protobuf插件版本:
- Gradle 7.0+ 需使用protobuf插件0.8.18及以上版本
- 修改项目根目录的
build.gradle(或build.gradle.kts)中的插件依赖:
若使用KTS语法:buildscript { dependencies { classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.18" } }buildscript { dependencies { classpath("com.google.protobuf:protobuf-gradle-plugin:0.8.18") } }
方案2:降级Gradle版本到插件兼容范围
如果不想升级protobuf插件,可将Gradle版本降级到6.9.x及以下(适配protobuf插件0.8.17及以下),修改gradle-wrapper.properties中的distributionUrl:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.4-all.zip
补充验证
同时检查app模块build.gradle中的Datastore依赖,确保版本与插件兼容:
dependencies { implementation "androidx.datastore:datastore:1.0.0" implementation "com.google.protobuf:protobuf-javalite:3.21.12" }
内容的提问来源于stack exchange,提问作者Giuliopime
相关产品推荐
相关产品推荐

