发布构建失败
我正在尝试构建签名版本(发行版),我收到以下错误 Duplicate zip entry [com/google/protobuf/d$1.class == com/google/protobuf/Any$1.class] 我试图清洁,无效和删除Gradle文件并重建它. 还更新到最新版本的GRPC版本和Protobuf. 尝试了此这是我的build.gradle(app模块)文件 apply plugin: 'com.android.application' apply plugin: 'com.google.protobuf' apply plugin: 'io.fabric' ext { supportLibraryVersion = '27.1.1' grpcVersion = '1.13.1' googlePlayVersion = '15.0.1' firebaseCoreVersion = '16.0.1' fir
0 2024-02-18
编程技术问答社区
编译C++ gRPC for Android
如何为Android编译C ++ GRPC代码?我已经看到了几个有关如何使用Android Native Development套件来编译Protobuf本身的教程,例如在来自或 Google Protobuf和Android NDK 但是如何编译使用Protobuf以及用于Android的C ++ GRPC代码?考虑到有20K行的 grpc makefile . 解决方案 我与 dockcross 以方便的方式设置工具链). 说$ git clone https://github.com/grpc/grpc --recursive $ cd grpc $ docker run --rm dockcross/android-arm > ./dockcross-android-arm $ chmod +x dockcross-android-arm $ ./dockcross-android-arm cmake -DgRPC_BUILD_CODEGEN=OFF -Bbu
0 2024-02-17
编程技术问答社区
Xamarin.Forms gRPC在开始调用gRPC时出错:连接时意外的流结束
i编程我的研究申请. 我尝试在xamarin.forms中使用grpc. GRPC位于单独的Libyry中(.NET Standart 2.1). 如果我在WPF核项目中使用代码,则每件事都可以. 但是,如果我尝试在xamarin.forms-project中使用相同的连接,则连接不起作用. 如果我使用connectionsTring" Error starting gRPC call: unexpected end of stream on Connection{my.server.com:5050, proxy=DIRECT hostAddress=5.189.149.82 cipherSuite=none protocol=http/1.1} (recycle count=0) 如果我是SSL版本" Error starting gRPC call: Connection closed by peer 这是grpc-libary 的代码 ..
0 2024-02-09
编程技术问答社区
在Android上用gRPC处理文件下载
我当前有一个正在发送视频文件的GRPC服务器.我用Kotlin编写的Android应用程序使用Coroutines用于UI更新(在dispatchers.main上)和处理单向块(在dispatchers.io上)的单向流.喜欢以下内容: GlobalScope.launch(Dispatchers.Main) { viewModel.downloadUpdated().accept(DOWNLOAD_STATE.DOWNLOADING) // MAKE PROGRESS BAR VISIBLE GlobalScope.launch(Dispatchers.IO) { stub.downloadVideo(request).forEach { file.appendBytes( it.data.toByteArray() )
2 2024-02-07
编程技术问答社区
Cloud Firestore与gRPC构建错误
我正在研究必须使用GRPC和Firestore的Android应用程序.但是,当我从'io.grpc'组依赖性(例如io.grpc:grpc-okhttp:1.7.0)和firestore依赖性(com.google.fire.firebase:firebase-firestore:11.4.2)中添加两个模块时构建Gradle配置,我遇到了一个构建错误"无法合并DEX".之后,我看到了问题是 Multiple dex files define Lio/grpc/internal/OobChannel$5; 如果Firestore使用GRPC核模块,可能会发生这种情况,但是在树依赖性中没有类似的人,我使用了[AndroidDepentencies] Gradle任务.我试图将io.grpc排除在外: implementation ('com.google.firebase:firebase-firestore:11.4.2') { exclude group: '
2 2024-02-07
编程技术问答社区
Google/Firebase的android SDKs是否使用GRPC?
最近,我一直在努力将grpc API集成在 size敏感 android应用中. API只有几个单一的电话.我注意到所产生的APK具有io.grpc(613kb)&io.opencensus(178.9kb),该APK使用proguard进一步降低至387.2kb和39.4kb.我注意到Proguard能够从APK中删除许多相关类/方法.但是,我注意到该应用程序已经具有com.google.protobuf软件包,我怀疑这是来自firebase SDK之类的东西. 如果Firebase SDK导入com.google.protobuf,为什么不需要io.grpc运输?它使用其他东西吗? 解决方案 Protobuf协议由某些Firebase SDK使用作为其内部通信的一部分.想到的第一个是Firebase Analytics,但还有其他. Firebase中的Cloud Firestore SDK使用GRPC作为其运输协议的一部分.如果您不使用Cloud Firesto
0 2024-02-07
编程技术问答社区
grpc : 调用是半封闭的错误
我正在使用Google Cloud Platform演讲API. 我正在使用示例源开发. 样品/树/主/语音/语音 几乎与样品源相同. 除了我的应用程序中的许多启动/停止. 我在三星设备中遇到了此错误. 我没有在华为设备中遇到此错误. com.google.common.base.base.preconditions.checkstate(preconditions.java:444) io.grpc.internal.clientcallimpl.sendmessage(clientcallimpl.java:389) io.grpc.forwardingclientcall.sendmessage(expedringclientcall.java:67) io.grpc.stub.clientcalls $ callToStreamObserverAdapter.onnext(clientcalls.java:302) com.example.myapp.speec
0 2024-02-06
编程技术问答社区
gRPC安卓客户端失去连接 "太多的ping"
Android GRPC客户端正在从服务器接收" pings pings"错误.现在我意识到这可能是服务器端问题,但我认为问题是客户端频道设置与服务器的设置不符. 我有一个具有以下设置的C#GRPC服务器: List channelOptions = new List(); channelOptions.Add(new ChannelOption("GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS", 1000)); channelOptions.Add(new ChannelOption("GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA", 0)); channelOptions.Add(new ChannelOption("GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS", 1));
0 2024-02-06
编程技术问答社区
protobuf lite和protobuf java中的重复类
我在Android实施中使用了Protobuf Lite.但是Protobuf Lite没有Google时间戳记,而我的Protos具有" Google/Protobuf/timestamp.proto".因此,我将实现'com.google.protobuf:Protobuf-java:3.7.1'添加到包含Google时间戳的Gradle.但是之后,代码汇编有错误.例如:在模块中发现的Protobuf-Java-3.7.1.jar(com.google.protobuf:protobuf-java:protobuf-java:3.7.1)和Protobuf-lite-lite-lite-lite-lite-3.0.1.1.1.1.1.jar( com.google.protobuf:protobuf-lite:3.0.1). 解决此问题的任何想法将不胜感激. apply plugin: 'com.android.application' apply plugin: 'com.g
8 2024-02-02
编程技术问答社区
安卓 如何在grpc客户端中添加一个自定义的标题?
我必须在Android GRPC客户端中添加自定义标头.我无法成功发送. public class HeaderClientInterceptor implements ClientInterceptor { @Override public ClientCall interceptCall(MethodDescriptor method, CallOptions callOptions, Channel next) { return new SimpleForwardingClientCall (next.newCall(method, callOptions)) { @Override public void start(Listener
0 2024-02-02
编程技术问答社区
我可以为一个由Istio提供的经典AWS ELB定义子域吗?
我将iStio部署在AWS EKS中的Kubernetes群集中.这创建了具有[redacted]-redacted.us-west-2.elb.amazonaws.com的外部主机名的类型LoadBalancer的Kubernetes服务,并自动为AWS ELB(类型classic)提供了外部主机名.那太棒了. (注意:在AWS控制台中,我看不到此ELB主机名的托管区域,看起来我可以配置别名或Whatn) 我已经能够通过定义将端口80到host:"*"的istio网关连接到集群外运行的GRPC客户端,并连接在群集中运行的GRPC服务器,并定义一个路由端口80的ISTIO虚拟服务到我的目的地(一些Kubernetes服务的某些港口).到目前为止还不错. 现在,我想在集群中的第二个GRPC端点进行此操作.据我所知,我的选择是:要么在入口上打开第二个端口(例如81)(我选择现在不做).或通过实现"虚拟托管"来定义[redacted]-redacted.us-west-2.elb.
4 2024-01-26
编程技术问答社区
使用ALB在AWS上部署支持gRPC的应用程序
我有两个微服务使用GRPC进行通信.我该如何配置它们以使用AWS ALB?在文档中说Alb支持HTTP/2,但是我只能看到HTTP1设置. 我的应用程序有一个GRPC端口,一个在8080处有一个健康检查API. 解决方案 我不相信你可以. albs"支持" http2,但仅在他们可以接受http2并在http1上转发之前就可以接受http2. . 您可以使用AWS的较新的" NLB",尽管还有其他皱纹. 有关此操作的更多详细信息 aws-some-gotchas 其他解决方案 截至2020年10月30日,现在可以这样做,因为对HTTP/2的端到端支持最终已添加到ALBS中. 关于以下方式:https://aws.amazon.com/about-aws/whats-new/2020/10/application-load-balancers-enable-grpc-workloads-端到端-HTTP-2-support/ 检查这些博客文章,以了解如
2 2024-01-26
编程技术问答社区
Elastic Beanstalk部署失败,权限被拒绝,mkdir
我正在尝试将GRPC依赖关系添加到节点弹性beanstalk应用程序中,而我的所有部署都失败了.一旦我从package.json中删除了GRPC依赖性>我的部署工作. 错误是 ERROR: Failed to run npm install. > grpc@1.10.1 install /tmp/deployment/application/node_modules/grpc > node-pre-gyp install --fallback-to-build --library=static_library node-pre-gyp ERR! Pre-built binaries not installable for grpc@1.10.1 and node@8.9.3 (node-v57 ABI, glibc) (falling back to source compile with node-gyp) node-pre-gyp ERR! Hit error
2 2024-01-24
编程技术问答社区
AWS ALB + ECS + GRPC + NESTJS,'14不可用:尝试连接http1.x服务器'
这是: 我们有Nestjs微服务通过GRPC对话.我们将其部署到Fargate上的AWS ECS. 在当前(工作)配置中,我们正在使用一个实例每个服务和一个用于服务发现的云图. 现在,我们希望每个服务都有多个实例.我们试图配置Alb. 在目标组中,我们看到目标处于"健康"状态. 但是,当我们尝试通过负载平衡器致电服务时,我们会收到'14 UNAVAILABLE: Trying to connect an http1.x server' 有什么想法? 这是我们CDK代码的一部分,负责创建负载平衡器: export class ServicePrivateStack extends ServiceFargateStack { constructor(scope: Construct, id: string, props: PrivateServiceStackProps) { supe
0 2024-01-24
编程技术问答社区
在亚马逊 EC2 上构建 gRPC 服务器
尝试在Amazon EC2实例上构建GRPC服务器/客户端时,我遇到了一个问题. 我有一个实例A(私有IP:例如1.2.3.4).服务器代码就像 from concurrent import futures import time import math import grpc import helloworld_pb2 _ONE_DAY_IN_SECONDS = 60 * 60 * 24 class Greeter(helloworld_pb2.GreeterServicer): def SayHello(self, request, context): return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name) def serve(): server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
4 2024-01-24
编程技术问答社区
无法在基于高山的dotnet SDK中运行GRPC ProtoC
请参阅此github问题: 请参阅此示例回购: https://github.com/slolife/slolife/alpine-protoc 如果我包括 grpc.tools 1.19.0 nuget软件包,它添加了构建步骤 如果我创建一个docker映像来构建和使用microsoft/dotnet:2.2-sdk作为构建图像,则可以正常工作.但是,如果我尝试使用基于高山的microsoft/dotnet:2.2-sdk-alpine构建图像,则构建失败了以下错误消息: /root/.nuget/packages/grpc.tools/1.19.0/build/_protobuf/Google.Protobuf.Tools.targets(263,5): error MSB6003: The specified task executable "/root/.nuget/packages/grp
10 2024-01-24
编程技术问答社区
找不到TLS ALPN供应商;没有可用的netty-cnative、Conscrypt或Jetty NPN/ALPN。
您正在使用什么版本的GRPC? 1.13.1 我正在使用Java 8来构建可执行的罐子.以下是Java版本: $ /usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/bin/java -version openjdk version "1.8.0_171" OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-2~14.04-b11) OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode) 我正在使用Gradle 3.4.1来生成JAR,如下所示: /opt/gradle-3.4.1/bin/gradle jar -Dorg.gradle.java.home=/usr/lib/jvm/java-1.8.0-openjdk-amd64/ 以下是模块级构建中定义的依赖项.gradle文件: dependencies {
6 2024-01-20
编程技术问答社区
在proto文件中定义的信息在最终的dotnet汇编中不可用
我正在为GRPC使用Dotnet Standard 2.0(Visual Studio 2017).这就是我的整个项目的样子: messages.proto syntax = "proto3"; package Messages; message IdRequest{ int32 id = 1; } message NameResponse{ string name=1; } name.proto syntax = "proto3"; package Services; import public "proto/messages.proto"; service NameService{ rpc GetNameById(Messages.IdRequest) returns (Messages.NameResponse); } common.proj
2 2024-01-08
编程技术问答社区
.NET Core 3.1 gRPC Docker: 无法使proto路径相对化
问题描述 发布默认的.NET CORE 3.1 GRPC服务(由Visual Studio Community 2019 16.5.4生成)通过Docker由于Could not make proto path relative : error : Protos/GreeterService.proto: No such file or directory [/src/ProjectName/ProjectName.csproj]而失败. 如何重现 使用.NET Core 3.1和Docker支持(Linux) 创建一个新的GRPC项目 打开生成的dockerfile 从第一个COPY的复制路径删除目录(这是默认Dockerfile中的错误): COPY ["ProjectName/ProjectName.csproj", "ProjectName/"] => COPY ["ProjectName.csproj", "ProjectName/"]
4 2024-01-08
编程技术问答社区
用gRPC进行基于渠道的自定义认证
如何使用dotnet中的grpc进行简单的通道身份验证? 我只想在频道连接期间仅通过客户端机器名称和客户端服务名称,然后才能将服务器中的这些名称传递给服务器一次,以识别请求来自哪里. 我不想在每个呼叫中​​以元数据作为元数据传递,我不想为此实施其他方法.我一直在查看文档并尝试实现一些抽象类,例如ServerCredentials,但是如果某些内部类,我也看不到它如何完成. . 当然,我不想为此使用SSL证书 解决方案 元数据中的auth数据 将它们传递到元数据中一个很好的解决方案.看看您不能将验证数据绑定到频道,因为在http/2中不能保证,同一TCP通道将用于后续呼叫. 也就 基于流的身份验证 基于流的身份验证也是一个选项,以防您要在同一API的后续调用之间保存身份验证数据.在我的解释中,这意味着您必须仅在流的开头传递身份验证数据.然后,您的StreamObserver可以保存身份验证数据并在随后的onNext()调用中重复使用.我使用这种方
4 2024-01-08
编程技术问答社区