protoc-gen-javanano не найден

Я пытаюсь использовать Protobuf в своем приложении для Android. Для этого я добавил в свой файл gradle.build следующие строки:

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.

Вы можете мне помочь с этим вопросом? Я понятия не имею, как это исправить.

Заранее спасибо !


person Alexandre D.    schedule 10.07.2015    source источник
comment
Итак, у вас есть приложение под названием protoc-gen-javanano в папке / usr / local / bin / protoc?   -  person Selvin    schedule 10.07.2015
comment
Нет, я просто указываю путь для протокола в градиенте. Но я добавил строку, чтобы исправить свою проблему, но этого не произошло, поэтому я предполагаю, что причина не в этом.   -  person Alexandre D.    schedule 10.07.2015
comment
Ваше предположение неверно ... Это путь к двоичному файлу protobuf   -  person Selvin    schedule 10.07.2015
comment
Хорошо, поэтому без этой строки в моем build.gradle у меня все еще есть эта ошибка. У вас есть идеи о возможном решении?   -  person Alexandre D.    schedule 10.07.2015
comment
Да ладно, прочтите документ ... Используйте эти решения, которые загружают двоичные файлы ... Я думаю, прямо перед этим решением ... Или это решение, но измените путь на реальный путь к protoc /protoc.exe (зависит от платформы Linux / окна)   -  person Selvin    schedule 10.07.2015


Ответы (1)


Это означает, что используемая вами версия protoc не поддерживает javanano. Простое исправление - использовать предварительно скомпилированный protoc на Maven Central, добавив следующее в ваш build.gradle (как предлагается документация плагина protobuf gradle):

protobuf {
    protoc {
        artifact = 'com.google.protobuf:protoc:3.0.0-alpha-3'
    }
}
person kku    schedule 03.02.2016