配置Protobuf输出Java文件或kotlin文件

第一种方式:编译自动生成(推荐

1、在app/src/main中创建proto文件夹,放入proto文件

2、在app下的gradle.build中配置

复制代码
plugins {
    id 'com.google.protobuf'
}

android {
   ...
   sourceSets {
        main {
            proto {
                srcDirs = [
                        '/src/main/proto/' //路径可替换,要与proto文件夹的路径相同
                ]
            }
        }
    }
    ...
}
dependencies {
    implementation 'com.google.protobuf:protobuf-javalite:3.22.3'
}
protobuf {
    // Configure the protoc executable
    protoc {
        artifact = "com.google.protobuf:protoc:3.22.3"//版本与依赖中的版本相同
    }
    generateProtoTasks {
        all().each { task ->
            task.builtins {
                remove java
                java {
                    option "lite"
                }
            }
        }
    }
}

3、在根目录下的gradle.build中配置

复制代码
buildscript {
    ...
    dependencies {
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.9.4'
    }
}

4、编译生成指定的proto.java文件。路径是app/build/generated/source/proto/release/java/xx/xx.java

5、使用

复制代码
val ass = xx.builder();
或
xx.set(x).set(y).build();

第二种方式:手动生成

1、官网(Releases · protocolbuffers/protobuf)下载protobuf

下载protoc-34.1-win32.zipprotoc-34.1-win64.zip

2、安装protobuf

解压压缩包,找到bin文件夹

3、配置protobuf到电脑环境中
打开设置------》高级设置------》环境变量------》用户配置------》编辑------》:路径/bin

4、输入指令

输出java:protoc --java_out=. ./business_objects_type.proto

输出kotlin:protoc --kotlin_out=./ ./business_objects_type.proto

5、在app下的gradle.build中配置

复制代码
implementation("com.google.protobuf:protobuf-java:4.31.1")
implementation("io.grpc:grpc-netty-shaded:1.61.0")
implementation("io.grpc:grpc-stub:1.61.0")

6、使用

复制代码
val ass = xx.builder();
或
xx.set(x).set(y).build();

以上,希望能帮助到各位!!!

相关推荐
CoderIsArt6 小时前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
微尘寒风6 小时前
【Git】的安装和使用
java·git
y = xⁿ6 小时前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
侧耳倾听1117 小时前
jwt使用简介
java·jwt
顶点多余8 小时前
那些在算法中适合巩固的知识点---1
java·前端·算法
AI人工智能+电脑小能手8 小时前
大白话说Java设计模式-46-责任链模式(业务实战篇)
java·设计模式·责任链模式·风控校验·servlet filter·spring interceptor·链式处理
jay神8 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
AI情绪识别开源8 小时前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
2601_962066499 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库