Mac 安装 protobuf 和Android Studio 使用

1. 安装,执行命令

brew install protoc

2. Mac 错误提示:zsh: command not found: brew解决方法

解决方法:mac 安装homebrew,

用以下命令安装,序列号选择中科大(1)或 阿里云

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2022年4月27日再次更新

可以直接使用官网的最新安装命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
如果还是不行的话可以上官网看看:HomeBrew官网

只不过官网非常慢,推荐使用下面的解决方案

3. 安装完成输入命令验证

protoc --version

显示 libprotoc x.x (版本号)就安装成功了.

二、Android Studio 使用

1. 下载插件,缺少的就下载

2. 配置 Gradle

2.1 在 build.gradle 中添加插件依赖

打开你的项目的顶级 build.gradle 文件,在 buildscript 的 dependencies 下添加 Protocol Buffers 插件依赖:

buildscript {repositories {google()// 其他仓库...}dependencies {classpath 'com.google.protobuf:protobuf-gradle-plugin:0.9.4'// 其他依赖...}
}

2.2 应用插件

在你的 app 模块的 build.gradle 文件中应用 Protocol Buffers 插件,并指定 protobuf 文件的位置:

  1. apply plugin: 'com.android.application'
    apply plugin: 'com.google.protobuf'android {// protobuf依赖的3.22.0之后版本必须要求添加,// 使用protobuf低版本依赖生成的java文件中有报错.compileOptions {sourceCompatibility 1.8targetCompatibility 1.8}// 其他配置...
    }//这里暂未使用,也没有配置  start
    protobuf {protoc {// 指定 Protobuf 编译器的版本artifact = 'com.google.protobuf:protoc:编译器版本号'}// 设置 protobuf 文件的路径// 示例路径,根据你的实际情况更改generatedFilesBaseDir = "$projectDir/src/main/java"
    }
    //这里暂未使用,也没有配置  startdependencies {//添加protobuf依赖implementation 'com.google.protobuf:protobuf-java:3.24.4'implementation 'com.google.protobuf:protoc:3.24.4'//implementation 'com.google.protobuf:protobuf-javalite:3.24.4'
    }

 3. 编写 .proto 文件

在src/main/下面新建 proto目录,用来编写.proto文件

4. 生成 Java 代码

方法一:

        1. 打开AS的Terminal终端,输入命令,以图为例

protoc --java_out=src/main/java/ --proto_path=src/main/proto student.proto

        2. 如上图就会在指定的java包名下生成咱们指定的StudentB这个java类.

方法二(未测试): 

  1. 运行 Gradle 的任务以生成 Java 代码。你可以在 Android Studio 的右侧 Gradle 选项卡中找到你的项目,展开 Tasks -> other -> protobuf,然后双击 generateProto 任务运行。

  2. 或者,可以在终端或命令行中进入你的项目根目录,运行以下命令:

    ./gradlew generateProto
    

    这将使用 Protocol Buffers 插件生成 Java 代码。

5. 在 Android 项目中使用生成的类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/196623.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用篇-ES-RestClient查询文档

一、快速入门 上面的查询文档都是依赖kibana,在浏览器页面使用DSL语句去查询es,如何用java去查询es里面的文档(数据)呢 我们通过match_all查询来演示基本的API,注意下面演示的是 match_all查询,也叫基础查询 首先保证你已经做好了…

保姆级 | Nginx编译安装

0x00 前言 Nginx 是一个 HTTP 和反向代理服务器, 邮件代理服务器, 和通用 TCP/UDP 代理服务器, 最初由伊戈尔西索耶夫(Igor Sysoev)撰写。采用编译安装可以根据自身需要自定义配置,让服务器有更高的安全性和…

OpenAI GPT-4 Turbo发布:开创AI新时代

🎥 屿小夏 : 个人主页 🔥个人专栏 : IT杂谈 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. GPT-4 Turbo的突破1.1上下文长度和控制手段的加强:1.2多模态支持&#xff1a…

【教3妹学编程-java基础6】详解父子类变量、代码块、构造函数执行顺序

-----------------第二天------------------------ 本文先论述父子类变量、代码块、构造函数执行顺序的结论, 然后通过举例论证,接着再扩展,彻底搞懂静态代码块、动态代码块、构造函数、父子类、类加载机制等知识体系。 温故而知新&#xff…

Windows下安装RabbitMQ

1.安装Erlang 因为RabbitMQ是用Erlang语言编写的,所以在安装RabbitMQ之前需要先安装Erlang。 如果还未安装Erlang,官方下载安装包,点击Download Windows installer下载Erlang Downloads - Erlang/OTP 下载Erlang/OTP后,双击otp的…

系统韧性研究(5)| 常用的系统韧性技术

如果不利事件或条件导致系统无法正常运行,则它们可能会对有价值的资产造成各种形式的损害。正如我在本系列的前几篇文章中概述的那样,系统韧性很重要,因为没有人想要一个无法克服“不可避免的逆境”的脆弱系统。 在本系列的第一篇文章中&…

Express.js 与 Nest.js对比

Express.js 与 Nest.js对比 自从 Node.js 发布以来,Javascript 在后端领域的使用有所增加。由于 Node.js 的使用越来越多,每天都会有新的框架和工具发布。Express 和 Nest 是使用 Node.js 创建后端应用程序的最著名的框架之一,在本文中&…

JVM判断对象是否存活之引用计数法、可达性分析

目录 前言 引用计数法 概念 优点 缺点 可达性分析 概念 缺点: 扩展: 1.GC Roots 概念 2.STW (Stop the world) 前言 JVM有两种算法来判断对象是否存活,分别是引用计数法和可达性分析算法,针对可达性分析算法STW时间长、…

阿里AoneFlow分支管理

分支模式 1.TrunkBased模式 工作方式 TrunkBased 模式是持续集成思想所崇尚的工作方式,它由单个主干分支和许多发布分支组成,每个发布分支在特定版本的提交点上从主干创建出来,用来进行上线部署和 Hotfix(补丁)。 …

workman使用手册1.0

workman官网地址:高性能PHP应用容器 workerman 1:把workman项目放到linux服务器后,需要启动你的php文件,才可以使用 定位到项目根目录:例:cd /mnt/workman 启动代码:php outin.php start -d 停…

Python小白之PyCharm仍然显示“No module named ‘xlwings‘”

Python小白之“没有名称为xlwings‘的模块”-CSDN博客文章浏览阅读8次。cmd 打开命令行,输入python出现>>>的提示格,输入import xlwings 回车,正常报错:No module named xlwings。输入python 回车后,再输入im…

mongodb使用简单文档

1、mongodb安装与卸载 1.1、安装 python -m pip install pymongo 或 pip install pymongo如果要安装指定版本: python -m pip install pymongo3.5.1对已有的版本进行升级: python -m pip install --upgrade pymongo1.2、卸载 pip uninstall pymongo…

环境配置 | Git的安装及配置[图文详情]

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从小到大的项目版本管理。下面介绍了基础概念及详细的用图文形式介绍一下git安装过程. 目录 1.Git基础概念 2.Git的下载及安装 3.常见的git命令 Git高级技巧 Git与团队协作 1.Git基础概念 仓库&#…

我认为除了HelloWorld之外,Python的三大数据转换实例可以作为开始学习Python的入门语言。

Python的三大数据转换实例 一、反转三位数 class Solution:def funtcion(self,number):hint(number/100)tint(number%100/10)zint(number%10)return 100*z10*th if __name____main__:solution Solution()num123new_num solution.funtcion(num)print("输入:{}".fo…

制作Go程序的Docker容器

今天突然遇到需要将 Go 程序制作成 Docker 的需求,所以进行了一些研究。方法很简单,但是官方文档和教程有些需要注意的地方,所以写本文进行记录。 源程序 首先介绍一下示例程序,示例程序是一个 HTTP 服务器,会显示si…

基于DOTween插件实现金币飞行到指定位置功能

文章目录 前言一、DOTween是什么?二、使用步骤1.导入DOTween插件在Unity官方插件商店找到DOTween插件导入DOTween插件启用DOTween插件 2.代码逻辑金币飞行代码控制飞行效果代码 3.物体配置1.物体上装配CoinEffect脚本2.在金币预制体上装配FlyControl脚本 三、效果展…

基于SpringBoot的SSMP整合案例(消息一致性处理与表现层开发)

消息一致性处理 在后端执行完相应的操作后,我们需要将执行操作后的结果与数据返回前端,前端 调用我们传回去的数据,前端是如何知道我们传回去的数据名称的? 答:前后端遵循了同一个"协议"。这个协议就是定义…

单例模式(常用)

单例模式(单例设计模式) 在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。 单例模式的定义与特点 单例(Singleton)模式的定义:指…

Stable Diffusion1.5网络结构-超详细原创

目录 1 Unet 1.1详细整体结构 1.2 缩小版整体结构 1.3 时间步编码 1.4 CrossAttnDownBlock2D 1.4.1 ResnetBlock2D 1.4.2 Transformer2DModel 1.4.2.1 BasicTransformerBlock 1.4.2.1.1 SelfAttention 1.4.2.1.2 CrossAttention 1.4.2.1.3 FeedForward 1.4.3 DownS…