You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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)中的插件依赖:
    buildscript {
        dependencies {
            classpath "com.google.protobuf:protobuf-gradle-plugin:0.8.18"
        }
    }
    
    若使用KTS语法:
    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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 19:03:21