利用Android Studio将Protobuf文件生成Java文件
配置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"
}
【利用Android Studio将Protobuf文件生成Java文件】参考文章
https://github.com/google/protobuf-gradle-plugin
推荐阅读
- android第三方框架(五)ButterKnife
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- android防止连续点击的简单实现(kotlin)
- Android|Android install 多个设备时指定设备