1、在app的build.gradle文件開頭添加
buildscript {
repositories {
gradlePluginPortal()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.19'
}
}
2、在proto文件所在的build.gradle文件中的
plugins 項中添加
id 'com.google.protobuf'
例如
plugins {
id 'com.google.protobuf'
id 'com.android.library'
}
3、在proto文件所在的build.gradle文件中的
android 項中添加
sourceSets {
main {
//實際測試指不指定無所謂,不影響 Java 文件生成
proto {
srcDir 'src/main/java/com/nhzero/connection/proto'
}
}
}
4、在proto文件所在的build.gradle文件中的
android項下面(注意,和android項是平級關(guān)系)
添加
protobuf {
//配置 protoc 編譯器
protoc {
artifact = 'com.google.protobuf:protoc:3.19.2'
}
//配置生成目錄,編譯后會在 build 的目錄下生成對應(yīng)的java文件
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
}
task.builtins {
java {}
}
}
}
}
5、在proto文件所在的build.gradle文件的
dependencies項中添加
implementation 'com.google.protobuf:protobuf-java:3.19.2'
6、proto文件引入其他proto文件定義的對象的例子
syntax = "proto3";
//指定包名
package com.nhzero.connection.proto;
option java_package = "com.nhzero.connection.proto";
option java_outer_classname = "ProtoCircle";
import "Point.proto";
message Circle{
string polyId = 1;
string name = 2;
Point center = 3;
int32 radius = 4;
repeated Point pointList = 5;
int32 lineColor = 6;
int32 width = 7;
int64 createTime = 8;
int32 userId = 9;
}
Point.proto文件內(nèi)容如下:
syntax = "proto3";
package com.nhzero.connection.proto;
option java_package = "com.nhzero.connection.proto";
option java_outer_classname = "ProtoPoint";
message Point{
float latitude = 1;
float longitude = 2;
}
浙公網(wǎng)安備 33010602011771號