配置Gradle

1、项目的build.gradle文件加入:

 classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'
项目级

2、模块的build.gradle

  • 顶部添加protobuf插件
apply plugin: 'com.google.protobuf'
  • android结点增加proto文件位置配置
    sourceSets {        main {            proto {                srcDir 'src/main/proto'                include '**/*.proto'            }            java {                srcDir 'src/main/java'            }        }    }
  • 添加依赖
    compile 'com.google.protobuf:protobuf-java:3.1.0'    compile 'com.google.protobuf:protoc:3.1.0'
  • 增加protobuf结点
protobuf {    protoc {        artifact = 'com.google.protobuf:protoc:3.1.0'    }    generateProtoTasks {        all().each { task ->            task.builtins {                remove java            }            task.builtins {                java {}                // Add cpp output without any option.                // DO NOT omit the braces if you want this builtin to be added.                cpp {}            }        }    }    generatedFilesBaseDir = "$projectDir/src/generated"}

目录结构

目录结构

完整的模块的build.gradle

apply plugin: 'com.android.application'apply plugin: 'com.google.protobuf'android {    compileSdkVersion 25    buildToolsVersion "25.0.0"    defaultConfig {        applicationId "com.ydtf.nbmobile.protobufdemo4"        minSdkVersion 16        targetSdkVersion 25        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    sourceSets {        main {            proto {                srcDir 'src/main/proto'                include '**/*.proto'            }            java {                srcDir 'src/main/java'            }        }    }}dependencies {    compile fileTree(dir: 'libs', include: ['*.jar'])    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {        exclude group: 'com.android.support', module: 'support-annotations'    })    compile 'com.android.support:appcompat-v7:25.0.1'    compile 'com.google.protobuf:protobuf-java:3.1.0'    compile 'com.google.protobuf:protoc:3.1.0'    testCompile 'junit:junit:4.12'}protobuf {    protoc {        artifact = 'com.google.protobuf:protoc:3.1.0'    }    generateProtoTasks {        all().each { task ->            task.builtins {                remove java            }            task.builtins {                java {}                // Add cpp output without any option.                // DO NOT omit the braces if you want this builtin to be added.                cpp {}            }        }    }    generatedFilesBaseDir = "$projectDir/src/generated"}

参考文章
https://github.com/google/protobuf-gradle-plugin

更多相关文章

  1. SystemUI 下拉栏快捷键隐藏(一)
  2. Service Manager进程从睡眠中被唤醒,返回BR_TRANSACTION,执行真正
  3. ubuntu下载编译android源码(二)
  4. 利用maven对android项目dubug
  5. Android(安卓)源码编译 文件系统制作
  6. Android(安卓)MMS模块数据存取
  7. 编译Android平台以及SDK
  8. Firebase引用版本冲突解决:Android(安卓)dependency 'com.google.
  9. 高德Demo,网上找了很多资料都不适合,自己研究出一个Demo,非常适合入

随机推荐

  1. Android UI--listview更改选中时item背景
  2. Android中在WebView中使用javascript
  3. Android中的sp和wp指针
  4. Android stagefright与opencore对比
  5. Android(安卓)学习笔记--android基本
  6. 关于android不能使用HttpClient以及相关
  7. Activity 的启动流程源码分析(Android 9.0
  8. Android字体简述
  9. Android设置软件开机自启动
  10. Android NFC简介