首页 > 其他分享 >android studio配置protobuf 3

android studio配置protobuf 3

时间:2024-12-12 16:58:44浏览次数:5  
标签:文件 java protobuf proto gradle studio android com

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项是平级关系)
添加
protobuf {
//配置 protoc 编译器
protoc {
artifact = 'com.google.protobuf:protoc:3.19.2'
}
//配置生成目录,编译后会在 build 的目录下生成对应的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文件内容如下:
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;
}


标签:文件,java,protobuf,proto,gradle,studio,android,com
From: https://www.cnblogs.com/qiyu/p/18602976

相关文章

  • android studio配置apt 使用Annotation
    1、生成类的Processor必须在类型为“JavaorKotlinLibrary"的module下,如果没有,则需要新建一个[原因是需要引入[javax.annotation.processing]包,这个包是jre下面的,只有在这种类型的Module下才能引入。 2、实现AbstractProcessor的方法,代码示例如下:@AutoService(Process......
  • Android原生方法几行代码实现对人像进行切割,Android图片人像分离,可更换背景或者透明背
    前言调研了好几天,网上大多数是需要收费的API接口,在准备付费购买接口的时候,一篇文章给我带来了希望Android------开源的Modnet算法实现抠图和更换背景再次感谢作者的分享效果图原作者的代码是无法切出透明背景的,我的项目需求是上传图片识别人像,更换背景变成景点,纯......
  • Android Studio 引用framework.jar方法
    参考文章:[Android][踩坑]AndroidStudio导入framework.jar的各种坑_android_RyanZHENG-开放原子开发者工作坊本文只对以下环境进行说明,其他环境参考上面文章开发环境:平台:RK3576 Android14JDK版本:JDK17AS版本:Jellyfish |2023.3.1Patch1gradle版本:8.0.1步骤:1、找......
  • RK3588主板/开发板Android12系统APK签名文件生成的方法,干货满满
    本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-I......
  • Android 网络框架的封装(暂定)
    参考一下,不能直接运行的工具类importandroid.app.Application;importandroid.content.Context;importandroid.text.TextUtils;importjava.io.File;importjava.io.InputStream;importjava.net.Proxy;importjava.util.concurrent.Executor;importjava.util.concur......
  • WhaleStudio Demo:如何从Aurora CDC 实时数据同步到Redshift详细演示
    视频演示:https://weixin.qq.com/sph/AQ0oGKk12今天我将向大家详细介绍如何使用WhaleStudio将数据从AuroraCDC(ChangeDataCapture)实时同步至Redshift的功能。这是一个强大的数据同步功能,它支持多种数据源,包括文件、非结构化数据以及多样化的接口。数据支持范围首先,Whale......
  • Android可长按拖拽item的列表
    Android可长按拖拽item的列表仿支付宝拖拽效果,长按拖拽item列表,自动换位一、思路:自定义控件DragGridView二、效果图:看视频更直观点:Android轮子-可长按拖拽item的列表三、关键代码:packagecom.cong.mydraglistapp.drag;importandroid.animation.Animator;......
  • android 12 (1、屏幕旋转默认开启 (2、Font size 保持微 Largest 选项设置 (3、Font s
    —a/alps/frameworks/base/core/java/android/content/res/Configuration.java+++b/alps/frameworks/base/core/java/android/content/res/Configuration.java@@-1422,7+1422,7@@publicfinalclassConfigurationimplementsParcelable,Comparable<Configuration......
  • Android 13 源码编译
    前言全局说明一、说明1.1环境:Ubuntu18.04.6LTS(Linuxqt-vm5.4.0-150-generic#167~18.04.1-UbuntuSMPWedMay2400:51:42UTC2023x86_64x86_64x86_64GNU/Linux)1.2清华源AOSP清华源:https://mirrors.tuna.tsinghua.edu.cn/AOSP帮助:https://mirrors.tuna.tsi......
  • macOS 完全卸载 Android Studio 教程
    在macOS上,直接删除AndroidStudio应用后,许多配置文件和缓存可能仍会保留在系统中。为了彻底清除AndroidStudio,以下是完整的卸载步骤。1.删除AndroidStudio应用本体打开Finder,进入/Applications目录。找到AndroidStudio.app,然后将其拖动到废纸篓。清空废纸篓......