谁能帮我从 Google Ads API 调试“之前加载了原型描述符”

如何解决谁能帮我从 Google Ads API 调试“之前加载了原型描述符”

运行此代码时出现此错误

$googleAdsClient->getGoogleAdsServiceClient()->search($customerId,$query,$page_size);

错误信息: proto descriptor was prevIoUsly loaded (included in multiple Metadata bundles?): google/ads/googleads/v5/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto

$googleAdsClient 是 \Google\Ads\GoogleAds\Lib\V5\GoogleAdsClient一个实例。

getGoogleAdsServiceClient 方法来自 ServiceClientFactoryTrait trait /Google/Ads/GoogleAds/Lib/V5/ServiceClientFactoryTrait.PHP

我正在跑步:

PHP 7.4.1
grpc module version => 1.34.0
protobuf version => 3.14.0

通过 composer 安装的其他库:

google/grpc-gcp                       0.1.5      gRPC GCP library for channel management
google/protobuf                       v3.13.0.1  proto library for PHP
googleads/google-ads-PHP              v5.0.0     Google Ads API client for PHP
grpc/grpc                             1.30.0     gRPC library for PHP

我对描述符或 protobuf 库的了解不够,无法理解此错误。它几天前才开始发生,我认为我们没有做出任何会影响这一点的改变。任何帮助/指导将不胜感激。

编辑:忘记链接到 SDK https://github.com/googleads/google-ads-php

编辑:更新了以下库:

google/apiclient                     v2.9.1     Client library for Google Apis
google/apiclient-services            v0.161.0   Client library for Google Apis
google/auth                          v1.15.0    Google Auth Library for PHP
google/common-protos                 1.3        Google Api Common Protos for PHP
google/gax                           1.7.0      Google Api Core for PHP
google/grpc-gcp                      0.1.5      gRPC GCP library for channel management
google/protobuf                      v3.15.3    proto library for PHP
googleads/google-ads-PHP             v7.0.0     Google Ads API client for PHP
grpc/grpc                            1.35.0     gRPC library for PHP
google/protobuf                      v3.15.3    proto library for PHP

解决方法

我发现了这个问题。我通过 pecl install protobuf 安装了 C 实现。感觉我在 docker 容器中运行我的应用程序,每次我构建一个新镜像时,它都会安装最新版本的 protobuf。感觉我是在 2 月 22 日左右开始看到这个错误的>

为了解决这个问题,我通过 Dockerfile 中的 pecl install protobuf-3.14.0 命令降级到 3.14.0 版。这不是永久性修复,因为有时我想升级软件包,但我将不得不等待处理此问题的版本。

,

错误是因为您的项目有两个库为同一个文件 policy_topic_evidence_destination_not_working_dns_error_type.proto 提供了原型描述符。
看起来此问题已在版本 v6 中针对 Google 广告库 link

修复

只需将库更新到 v6 及更高版本(最新的是 v7),它应该可以解决问题 Latest Release

,

我有同样的错误,我注释掉了这一行

; extension=protobuf.so

在 /etc/php/7.4/apache2/php.ini 和 在 /etc/php/7.4/cli/php.ini 并重启apache

sudo service apache2 restart

错误消失了,我希望这对某人有帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?