利用Android(安卓)Studio将Protobuf文件生成Java文件
16lz
2021-01-25
配置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
更多相关文章
- SystemUI 下拉栏快捷键隐藏(一)
- Service Manager进程从睡眠中被唤醒,返回BR_TRANSACTION,执行真正
- ubuntu下载编译android源码(二)
- 利用maven对android项目dubug
- Android(安卓)源码编译 文件系统制作
- Android(安卓)MMS模块数据存取
- 编译Android平台以及SDK
- Firebase引用版本冲突解决:Android(安卓)dependency 'com.google.
- 高德Demo,网上找了很多资料都不适合,自己研究出一个Demo,非常适合入