Android应用程序无法构建

时间:2016-08-31 13:41:12

标签: android gradle protocol-buffers

在gradle尝试构建项目(使用protobuf)后有一个日志

  

:app:generateDebugProto FAILED

     

失败:构建因异常而失败。

     
      
  • 出了什么问题:任务执行失败':app:generateDebugProto'。

         
        

    protoc:stdout :. stderr:/ Users / / app / build / extracted-protos / main:warning:目录不存在。 /用户/ /应用程序/ SRC /调试/原:     警告:目录不存在。
        / Users / / app / build / extracted-protos / debug:warning:directory没有     存在。 / Users / / app / build / extracted-include-protos / debug:warning:     目录不存在。 / Users / / app / src / debug / proto:警告:     目录不存在。 /用户/ /应用程序/生成/提取-PROTOS /调试:     警告:目录不存在。
        / Users / _ / app / build / extracted-include-protos / debug:warning:directory     不存在。缺少输出指令。

      
  •   
  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。

  •   

无法修复。

3 个答案:

答案 0 :(得分:0)

Thanks guys for try to help me out, but problem was in my project used to java-nano codegen, so after update to protoc 3.0.0 , this cause a problem, so i read https://github.com/google/protobuf-gradle-plugin and here https://github.com/google/protobuf/releases/tag/v3.0.0, that i decided to use java-lite codegen instead of java-nano. And it's clear now, and errors disappeared.

答案 1 :(得分:0)

另一种替代解决方案是手动创建丢失的目录。 就我而言,MyApp/app/build/extracted-include-protos/main丢失了,所以我在那里创建了一个“主”文件夹,瞧!错误消失了。

答案 2 :(得分:0)

以下配置对我有用

应用程序级build.gradle文件

classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'

项目级别的build.gradle文件

apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'

protobuf {
    protoc {
        artifact = 'com.google.protobuf:protoc:3.8.0'
    }
    plugins {
        javalite {
            artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
        }
        grpc {
            artifact = 'io.grpc:protoc-gen-grpc-java:1.0.0-pre2'
        }
    }
    generateProtoTasks {
        all().each { task ->
            task.builtins {
                remove java
            }
            task.plugins {
                javalite { }
                grpc {
                    option 'lite'
                }
            }
        }
    }
}