Protobuf
一、配置
1.项目build.gradle中添加插件:
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.8'
2.module build.gradle添加插件:
apply plugin: 'com.google.protobuf'
3.module build.gradle添加配置:
android {
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.0.0'
}
plugins {
javalite {
artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
}
}
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
}
task.builtins {
java { }
cpp { }
}
}
}
}
}
4.module build.gradle添加依赖
compile 'com.google.protobuf:protobuf-java:3.6.1'
5.添加目录及配置:
sourceSets {
main {
java {
srcDir 'src/main/java'
}
proto {
srcDir 'src/main/proto'
}
}
}
在java同级创建proto文件夹
6.在studio中加入插件 ProtoBuf Support 并重启studio
配置完成
二、开发
1在protobuf文件夹下新建test.proto文件
syntax = "proto3";
package com.xxx.xxx; //输出的包名
option java_outer_classname = "XXXX"; //输出的类名
message User{
int64 id = 1 ;
string name = 2 ;
}
构建一下就ok了
可以使用SObjectModel.User.newBuilder()建一个实例看看
解析的话就是使用SObjectModel.User.parseFrom方法,传入一个InputStream
序列话是user.build().toByteArray()方法
报错:
Directory '/<project_path>/build/extracted-include-protos/main' specified for property '$3' does not exist.
更改protobuf-gradle-plugin的版本
网友评论