Android使用ProtoBuf 适配 gradle7.5 gradle8.0

news/2024/10/21 18:41:23/

ProtoBuf 适配 Gradle7.5

圆规

gradlewrapperproperties__3">gradle-wrapper.properties 配置

javascript">distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip

gradle_9">Project:build.gradle:

javascript">plugins {id 'com.android.application' version '7.4.2' apply falseid 'com.android.library' version '7.4.2' apply falseid 'com.google.protobuf' version '0.8.19' apply false
}

gradle_19">App:build.gradle:

proto文件

javascript">android {// android studio 生成 jniLibs 目录sourceSets {main {proto {// 指定.proto文件路径srcDir 'src/main/proto'include '**/*.proto'}}}
}dependencies {// 定义protobuf依赖implementation "com.google.protobuf:protobuf-java:3.6.1"
}protobuf {protoc {// //配置 protoc 编译器artifact = 'com.google.protobuf:protoc:3.6.1'}// 配置生成目录,编译后会在 build 的目录下生成对应的java文件generateProtoTasks {all().each { task ->task.builtins {remove java}task.builtins {java {}}}}
}

ProtoBuf 适配 Gradle8.0

gradlewrapperproperties__64">gradle-wrapper.properties 配置

javascript">distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip

gradle_70">Project:build.gradle:

javascript">plugins {id 'com.android.application' version '8.1.3' apply falseid 'com.android.library' version '8.1.3' apply falseid 'com.google.protobuf' version '0.9.3' apply false
}

gradle_79">App:build.gradle:

javascript">android {// android studio 生成 jniLibs 目录sourceSets {main {proto {// 指定.proto文件路径srcDir 'src/main/proto'include '**/*.proto'}}}
}protobuf {//配置 protoc 编译器protoc {artifact = 'com.google.protobuf:protoc:3.21.7'}//配置生成目录,编译后会在 build 的目录下生成对应的java文件generateProtoTasks {all().each { task ->task.builtins {remove java}task.builtins {java {}}}}
}dependencies {implementation 'com.google.protobuf:protobuf-java:3.21.7'//....
}

http://www.ppmy.cn/news/1439737.html

相关文章

(四)Servlet教程——Maven的安装与配置

1.在C盘根目录下新建一个Java文件夹,该文件夹用来放置以下步骤下载的Maven; 2. 下载Maven的来源有清华大学开源软件镜像站和Apache Maven的官网,由于清华大学开源软件镜像站上只能下载3.8.8版本以上的Maven,我们选择在Apache Maven的官网上下…

【WPF+C# 项目开发软件的小结】

文章目录 前言一、WPF是什么?二、C#是什么?三、wpf 和c#的关系四、wpf 怎么调用c的dll1. 创建C DLL2. 构建C DLL3. 在WPF项目中引用DLL使用P/Invoke直接调用DLL函数 4. 处理数据类型和内存管理5. 调试和测试 总结 前言 提示:这里可以添加本文…

python -闭包和装饰器

闭包和装饰器的详细解释 什么是闭包? 闭包是一个特殊的函数结构,它允许一个函数访问其外层函数作用域中的变量,即使外层函数已经执行完毕。闭包的特点是记住了包围它的作用域中的变量。 示例代码 def outer(x):y 10def inner():return x…

交叉编译嵌入式openssl,关键是在config中指定编译器前缀

其实还是很顺利的。 下载 LINUX下载编译OpenSSL_linux下载 openssl-CSDN博客 编译 BUILD_LIBS${HOME}/build_libsCROSS_NAMEaarch64-mix210-linux export PATH/opt/linux/x86-arm/${CROSS_NAME}/bin:${PATH}make clean./config \--cross-compile-prefix${CROSS_NAME}- \no-…

AI作画算法原理详解:从数据到艺术的自动化之旅

AI作画算法原理详解:从数据到艺术的自动化之旅 在数字化时代,人工智能(AI)技术正逐步渗透到各个领域,其中AI作画技术更是引发了广泛关注。本文将详细解析AI作画算法的原理,带领读者了解从数据收集与处理到…

LeetCode - LCR 008.长度最小的子数组

一. 题目链接 LeetCode - 209. 长度最小的子数组 二. 思路分析 由于此问题分析的对象是「⼀段连续的区间」,因此可以考虑「滑动窗口」的思想来解决这道题。 让滑动窗口满足:从 i 位置开始,窗口内所有元素的和小于target (那么当…

Swift - Playground

文章目录 Swift - Playground1. 新建Playground2. View3. 图片4. ViewController5. Playground - 多Page6. 注释6.1 Playground的注释支持markup语法(与markdown相似)6.1.1 语法 Swift - Playground Playground可以快速预览代码效果,是学习语…

状态模式:管理状态转换的策略

在软件设计中,某些对象在其生命周期内会有不同的状态,并且这些状态之间可以相互转换。状态模式(State Pattern)是一种行为型设计模式,它允许一个对象在其内部状态改变时改变其行为。这个模式将各种状态转移逻辑封装在独…