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


    ProtoBuf 适配 Gradle7.5

    圆规

    gradle-wrapper.properties 配置

    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
    
    • 1

    Project:build.gradle:

    plugins {
        id 'com.android.application' version '7.4.2' apply false
        id 'com.android.library' version '7.4.2' apply false
        id 'com.google.protobuf' version '0.8.19' apply false
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    App:build.gradle:

    proto文件

    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 {}
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    ProtoBuf 适配 Gradle8.0

    gradle-wrapper.properties 配置

    distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
    
    • 1

    Project:build.gradle:

    plugins {
        id 'com.android.application' version '8.1.3' apply false
        id 'com.android.library' version '8.1.3' apply false
        id 'com.google.protobuf' version '0.9.3' apply false
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    App:build.gradle:

    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'
        //....
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
  • 相关阅读:
    spring源码解析——IOC之自定义标签解析
    20231122给RK3399的挖掘机开发板适配Android12
    算术运算的元方法 Metamethods
    IDEA 在远程 Tomcat 上运行项目(亲身避坑版)
    分布式通信框架
    若依前端使用
    1.Python 设计模式
    生产型企业如何搭建进销存管理系统?低代码平台了解一下
    22-9-18学习笔记-MySQL和Redis
    Redis的监控与调优:工具使用和性能提升技巧
  • 原文地址:https://blog.csdn.net/wsdxho/article/details/138213628