well_known_types_embed.cc - /bin/sh: js_embed: perintah tidak ditemukan

Saya mencoba menjalankan contoh dari https://github.com/grpc/grpc/tree/master/examples/android/helloworld.

Saya memeriksa bahwa saya memiliki:

Android SDK Android NDK protoc grpc_cpp_plugin

Saya juga telah menjalankan git submodule update --init di repositori untuk mengunduh semua dependensi.

Ketika saya menjalankan /gradlew installDebug --stacktrace

Saya mendapatkan kesalahan ini:

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.

Saya menjalankan ini di OSX

Adakah yang tahu di mana saya bisa memperbaikinya?

Terima kasih


person xarly    schedule 13.06.2018    source sumber


Jawaban (2)


Membangun gRPC C++ untuk Android memerlukan perbaikan pada aturan build protobuf (https://github.com/google/protobuf/pull/3878) yang digabungkan menjadi master tetapi belum dirilis.

Sebagaimana tercantum dalam https://github.com/grpc/grpc/blob/master/examples/android/helloworld/README.md, untuk saat ini Anda harus melakukan patch permintaan pull ini secara manual ke third_party/protobuf sebelum membuat gRPC untuk Android. Anda dapat melakukannya dengan perintah berikut dari direktori root repositori grpc:

cd third_party/protobuf
git cherry-pick cba18efe1861d1fc1eecd6dc2af86fc1f0d9922f
person Eric G    schedule 13.06.2018
comment
Ya, saya tahu tentang masalah itu. Saya menggunakan master. Tapi saya memutuskan untuk menggunakan cherry pick Anda dan masih menunjukkan kesalahan yang sama. Terima kasih :) - person xarly; 14.06.2018

Saya membuatnya berhasil.

Saya pikir itu melibatkan pembaruan Android Studio. Tapi sejujurnya saya tidak yakin.

Saya membersihkan direktori dengan perubahan apa pun yang dibuat dengan build yang belum selesai (kecuali untuk properti lokal, di mana saya menunjukkan di mana SDK-nya)

saya berlari

 /gradlew installDebug --stacktrace

Dan berhasil.

Saya mendapat kesalahan lain tetapi itu terjadi dengan gradlew. Tidak dapat menemukan perangkat untuk menjalankan proyek, jadi saya membuka studio Android dan bekerja.

person xarly    schedule 14.06.2018