Android Studio配置google protobuf

首先新建一个工作空间

其次配置gradle首先是根目录的



classpath的版本和studio的这里会有个坑 3.0的studio这里版本至少是0.8.2,开始下载maven会很长时间

这里是moudle的gradle配置

apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'
android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.mapbar.myprotodemo"
        minSdkVersion 21
        targetSdkVersion 26
        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 {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:0.5'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:2.2.2'
    compile 'com.google.protobuf:protobuf-java:3.1.0'
    compile 'com.google.protobuf:protoc:3.1.0'
}

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完成之后我们接着最后的工作,那就是创建.proto文件。

我这里是用的Notepad++编辑的这个是 setting 》plugin 里面的插件别忘了下载,如果没有的话去官网下载,自己手动导入。(http://plugins.jetbrains.com/androidstudio)

这是编辑的内容

syntax = "proto2";
option java_package="com.mapbar.person";
option  java_outer_classname="MyPerson";
message People{
    required string  pnam=1;
    optional int32 name=2;
}

 proto2 参数需要加reauired 和optional修饰字段,必须和不必须的意思。

最后点击

生成你的类如下图


先面是在activity中的应用


完成!!!!!!!!!!!!!

猜你喜欢

转载自blog.csdn.net/Dream_go888/article/details/80092991