2015-07-10 297 views
1

我想在我的Android应用程序中使用Protobuf。 因此,要做到这一点,我添加了以下线在我gradle.build文件:protoc-gen-javanano没有找到

buildscript { 
    repositories { 
     maven { 
      url "https://plugins.gradle.org/m2/" 
     } 
    } 
    dependencies { 
     classpath "gradle.plugin.com.google.protobuf:protobuf-gradle-plugin:0.5.0" 
    } 
} 

apply plugin: "com.google.protobuf" 

sourceSets { 
     main { 
      proto { 
       // In addition to the default 'src/main/proto' 
       srcDir '../../../Libs/Protocol' 
      } 
     } 
    } 

protobuf { 
    protoc { 
     path = '/usr/local/bin/protoc' 
    } 
} 

的事情是,当gradle这个建立我得到一个错误。它说:

Error:Execution failed for task ':app:generateDebugProto'. 
> protoc: stdout: . stderr: protoc-gen-javanano: program not found or is not executable 
    --javanano_out: protoc-gen-javanano: Plugin failed with status code 1. 

你能帮我解决这个问题吗? 我不知道如何解决它。

预先感谢您!

+0

所以,你必须应用程序调用protoc-GEN-javanano在/ usr/local/bin/protoc文件夹中? – Selvin

+0

不,我只是给Gradle中的protoc路径。但为了解决我的问题,我添加了该行,但并不是所以我认为这不是原因。 –

+0

你的假设是错误的...这是一个protobuf二进制的路径 – Selvin

回答

1

这意味着您正在使用的版本protoc不支持javanano。通过添加以下到一个简单的办法是使用预编译protoc Maven的中央你build.gradle(由protobuf的gradle这个插件的documentation建议):

protobuf { 
    protoc { 
     artifact = 'com.google.protobuf:protoc:3.0.0-alpha-3' 
    } 
}