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

Android Proto Datastore构建报错:无法获取'source'属性

解决Proto DataStore构建时的"unknown property 'source'"异常

问题原因

Android Studio Giraffe(对应AGP 7.4+)搭配的protobuf插件版本若与旧配置写法不兼容,会触发该错误。官方教程中的旧配置仍在使用source属性,但新版本protobuf插件已调整API,不再支持该属性。

修复步骤

  • 更新项目根目录build.gradle(或build.gradle.kts)中的protobuf插件版本至适配AGP 7.4+的版本,例如com.google.protobuf:protobuf-gradle-plugin:0.9.4及以上
  • 修改模块级build.gradle(或build.gradle.kts)中的protobuf配置块,替换旧的source写法:
    旧写法示例:
    protobuf {
        protoc {
            artifact = "com.google.protobuf:protoc:3.21.12"
        }
        generateProtoTasks {
            all().each { task ->
                task.source.srcDir 'src/main/proto'
            }
        }
    }
    
    适配新版本插件的写法:
    protobuf {
        protoc {
            artifact = "com.google.protobuf:protoc:3.21.12"
        }
        generateProtoTasks {
            all().each { task ->
                task.builtins {
                    java {
                        option "lite"
                    }
                }
            }
        }
    }
    
    若需指定proto文件目录,直接在android块的sourceSets中配置即可,无需在protobuf任务内设置:
    android {
        sourceSets {
            main {
                proto {
                    srcDir "src/main/proto"
                }
            }
        }
    }
    
  • 同步Gradle项目后重新构建

额外注意事项

  • 确保Proto DataStore依赖版本与protobuf版本匹配,比如使用androidx.datastore:datastore-proto:1.0.0及以上
  • 清理项目缓存(通过File > Invalidate Caches...操作)后再重新构建,避免缓存引发的问题

内容的提问来源于stack exchange,提问作者Surendra Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 22:24:57