关于MAC M1处理器运行Android protoc报错的解决方案

ClickFast
• 阅读 2247

Protobuf是Google开发的一种新的结构化数据存储格式,一般用于结构化数据的串行化,即我们常说的数据序列化。这种序列化的协议非常轻便高效,而且是跨平台的,目前已支持多种主流语言,并且比传统的XML, JSON等方式更具优势。详情可以参考:Google protocol buffer。不过,最近在使用Protobuf时候报了如下的一个错误。

Execution failed for task ':columbus:generateDebugProto'.
> Could not resolve all files for configuration ':columbus:protobufToolsLocator_protoc'.
   > Could not find protoc-3.0.0-osx-aarch_64.exe (com.google.protobuf:protoc:3.0.0).
     Searched in the following locations:
         https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/3.0.0/protoc-3.0.0-osx-aarch_64.exe

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

解决的方法是更换protoc的地址,如果我们直接打开https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/3.0.0/protoc-3.0.0-osx-aarch_64.exe,会发现网页时打不开,所以我就去掉后面的版本号,打开下面的链接:

https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/

得到protoc的版本如下:
关于MAC M1处理器运行Android protoc报错的解决方案
所以,我们只需要找到下面的代码,在com.google.protobuf:protoc:3.0.0中添加osx-x86_64即可。

protoc {
        artifact = 'com.google.protobuf:protoc:3.0.0'
    }
    plugins {
        javalite {
            artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
        }
    }

//变更后
protoc {
        artifact = 'com.google.protobuf:protoc:3.0.0:osx-x86_64'
    }
    plugins {
        javalite {
            artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0:osx-x86_64'
        }
    }
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java中的序列化方式及dubbo使用kryo序列化
java中的序列化方式:1\.自带序列化 ObjectInputSteam、ObjectOutStream等2\.hession23\.json,xml等格式4.kryo5.FST\dubbo直接多种序列化方式,默认是hession2.比较成熟,但是效率略低。可以配置使用kryo  <dubbo:
happlyfox happlyfox
4年前
Newtonsoft.Json的使用整理
关于我引言json是我们在工作中经常用到的一种数据传输格式,开始过程中解析json是我们经常面对的问题。NewtonsoftJson是c的一套json处理封装类,它可以高效,方便地帮助我们处理json。NetonSoftJson提供了完整的使用文档,文档地址如下:NetonSoftJson的不同使用场景常用方法序列化和反序列化这应该是我们最常用的俩
Stella981 Stella981
3年前
Dalvik与JVM
Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运
Stella981 Stella981
3年前
Python 转化成 PB 格式数据
一、概述ProtocolBuffers是Google公司开发的一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或RPC数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。ProtocolBuffers简称为protobuf或pb,下面
Stella981 Stella981
3年前
C#对象序列化(Serialize)与反序列化(Deserialize)
.NET框架提供了两种种串行化的方式:1、是使用BinaryFormatter进行串行化;2、使用XmlSerializer进行串行化。第一种方式提供了一个简单的二进制数据流以及某些附加的类型信息,而第二种将数据流格式化为XML存储。可以使用\Serializable\属性将类标志为可序列化的。如果某个类的元素不想被序列化,1、可以使用\Non
Stella981 Stella981
3年前
ProtoBuf 的java使用
ProtocolBuffer是用于结构化数据串行化的灵活、高效、自动的方法,有如XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。参考http://blog.csdn.net/luyee2010/article/details/82
Stella981 Stella981
3年前
ProtoBuf试用与JSON的比较
介绍ProtoBuf是google团队开发的用于高效存储和读取结构化数据的工具。什么是结构化数据呢,正如字面上表达的,就是带有一定结构的数据。比如电话簿上有很多记录数据,每条记录包含姓名、ID、邮件、电话等,这种结构重复出现。同类XML、JSON也可以用来存储此类结构化数据,但是使用ProtoBuf表示的数据能更加高效,并且将
Wesley13 Wesley13
3年前
序列化方案选型对比
4千字长文预警!!背景JSON/XML不好吗?好,再没有一种序列化方案能像JSON和XML一样流行,自由、方便,拥有强大的表达力和跨平台能力。是通用数据传输格式的默认首选。不过随着数据量的增加和性能要求的提升,这种自由与通用带来的性能问题也不容忽视。JSON和XML使用字符串表示所有的数据,对于非字符数据来说,字面量表达会占用
绣鸾 绣鸾
1年前
Modern CSV for mac(CSV文件编辑器) v2.0.4注册版
是一种现代化的CSV(逗号分隔值)文件处理格式,用于存储和传输结构化数据。它提供了更丰富的功能,包括支持多种分隔符、复杂数据类型(如日期、时间和布尔值)、表头定义、注释等。ModernCSV还具备高度的兼容性,可以与各种数据处理工具和编程语言进行无缝集成。
liam liam
1年前
探索 RPC 与 Protobuf 的强大功能
一、Protobuf数据格式简析Protobuf是什么?在数据密集型应用领域,Google开发的Protobuf作为一种高效数据编码方式而广受欢迎。它胜任于及XML对比,不仅在体积和速度上表现出色,而且其结构化方式优化了网络传输中的性能。简而言之,Prot
ClickFast
ClickFast
Lv1
我打算爱你很久,没有想要放弃的念头。
文章
4
粉丝
0
获赞
0