当前位置: 首页 > news >正文

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 项目中使用生成的类

相关文章:

  • Linux(3):Linux 的文件权限与目录配置
  • 认识Modbus通信协议(笔记)
  • WPF MVVM模式介绍
  • 系统安全-常见的几种sql注入攻击的方式
  • SQL SERVER 2008安装教程
  • 学习raft协议(1)
  • os.path.join函数用法
  • gRPC 的原理 介绍带你从头了解gRPC
  • 【Qt之QWizardPage】使用
  • Ubuntu 20.04 LTS ffmpeg gif mp4 互转 许编译安装ffmpeg ;解决gif转mp4转换后无法播放问题
  • Unity在Windows选项下没有Auto Streaming
  • Android NDK JNI 开发native层崩溃日志栈分析 空指针异常(Cause: null pointer dereference)
  • 信号的机制——信号的发送与处理
  • Clickhouse学习笔记(15)—— Clickhouse备份
  • C语言第入门——第十六课
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【笔记】你不知道的JS读书笔记——Promise
  • gitlab-ci配置详解(一)
  • in typeof instanceof ===这些运算符有什么作用
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • vue学习系列(二)vue-cli
  • 工作手记之html2canvas使用概述
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 如何设计一个微型分布式架构?
  • 深入浅出Node.js
  • 手写双向链表LinkedList的几个常用功能
  • 思否第一天
  • 运行时添加log4j2的appender
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # 透过事物看本质的能力怎么培养?
  • (C语言)逆序输出字符串
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (一)kafka实战——kafka源码编译启动
  • (转) RFS+AutoItLibrary测试web对话框
  • ***详解账号泄露:全球约1亿用户已泄露
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core Web APi类库如何内嵌运行?
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET委托:一个关于C#的睡前故事
  • .NET中 MVC 工厂模式浅析
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • [2669]2-2 Time类的定义
  • [30期] 我的学习方法
  • [ARC066F]Contest with Drinks Hard
  • [C#基础]说说lock到底锁谁?