well_known_types_embed.cc — /bin/sh: js_embed: команда не найдена

Я пытаюсь запустить пример с https://github.com/grpc/grpc/tree/master/examples/android/helloworld.

Я проверил, что у меня есть:

Android SDK Протокол Android NDK grpc_cpp_plugin

Также я запустил git submodule update --init в репозитории, чтобы загрузить все зависимости.

Когда я запускаю /gradlew installDebug --stacktrace

Я получаю эту ошибку:

Error while executing process 
/Users/myuser/Library/Android/sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /Users/..path../exampleAndroidUsingCPP/grpc/examples/android/helloworld/app/.externalNativeBuild/cmake/debug/x86 --target protoc}
[1/98] Generating ../../../../../../../../../../../../third_party/protobuf/src/google/protobuf/compiler/js/well_known_types_embed.cc
FAILED: cd /Users/..path../exampleAndroidUsingCPP/grpc/examples/android/helloworld/app/.externalNativeBuild/cmake/debug/grpc/outputs/x86/third_party/protobuf && js_embed /Users/..path../exampleAndroidUsingCPP/grpc/third_party/protobuf/src/google/protobuf/compiler/js/well_known_types/any.js /Users/..path../exampleAndroidUsingCPP/grpc/third_party/pr tobuf/src/google/protobuf/compiler/js/well_known_types/struct.js /Users/..path../exampleAndroidUsingCPP/grpc/third_party/protobuf/src/google/protobuf/compiler/js/well_known_types/timestamp.js > /Users/..path../exampleAndroidUsingCPP/grpc/third_party/protobuf/src/google/protobuf/compiler/js/well_known_types_embed.cc
/bin/sh: js_embed: command not found
ninja: build stopped: subcommand failed.

Я запускаю это в OSX

Любая идея, где я могу посмотреть, чтобы исправить это?

Спасибо


person xarly    schedule 13.06.2018    source источник


Ответы (2)


Создание gRPC C++ для Android требует исправления правил сборки protobuf (https://github.com/google/protobuf/pull/3878), который объединен с мастером, но еще не выпущен в виде релиза.

Как указано в https://github.com/grpc/grpc/blob/master/examples/android/helloworld/README.md, на данный момент вы должны вручную исправить этот запрос на включение в third_party/protobuf перед сборкой gRPC для Android. Вы можете сделать это с помощью следующих команд из корневого каталога репозитория grpc:

cd third_party/protobuf
git cherry-pick cba18efe1861d1fc1eecd6dc2af86fc1f0d9922f
person Eric G    schedule 13.06.2018
comment
Да, я знаю об этой проблеме. Я использую мастер, хотя. Но я решил использовать ваш выбор, и он все еще показывает ту же ошибку. Спасибо, в любом случае :) - person xarly; 14.06.2018

Я заставил это работать.

Я думаю, что это было связано с обновлением Android Studio. Но, честно говоря, я не уверен.

Я чищу каталог с любыми изменениями, сделанными с незаконченной сборкой (кроме local.properties, где я указываю, где находится sdk)

я бегу

 /gradlew installDebug --stacktrace

И работает.

У меня есть еще одна ошибка, но она реализована с помощью gradlew. Он не может найти устройство для запуска проекта, поэтому я открыл студию Android и работал.

person xarly    schedule 14.06.2018