问题标签 [square-wire]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1476 浏览

android - 在 Android Studio 中使用 Gradle 添加 Wire 依赖项的最佳方法

我正在为我的 Android 应用程序使用 Square 的Wire 库,并使用带有 Gradle 的 Android Studio。

我最初将其添加wire-runtime-1.2.0.jarlibs模块中的文件夹中,然后在我的build.gradle文件中将依赖项添加到 Gradle,如下所示:

那工作得很好。

我是 Gradle 和 Android Studio 的新手,但根据我依赖 Google Support 和 Play Services 库的方式,我认为我可以wire-runtime-1.2.0.jar从我的存储库中删除该库并声明这样的依赖项(行来自Maven 存储库):

但是如果我这样做,那么我会遇到这个错误:

有没有办法在不直接导入 JAR 文件的情况下设置这种依赖关系?或者这只适用于您可以通过 SDK 管理器安装的库?

0 投票
30 回答
74266 浏览

android-studio - Android Studio 内联编译器显示红色错误,但使用 gradle 编译工作正常

根据这个问题,我在 Android Studio 中设置了我的项目以使用Square Wire 库

Build->Compile Project工作正常。

但是,如果我打开我生成的协议缓冲区文件之一,则无法识别 Square 包。

Android Studio 内联编译错误

另一个症状是从 SquareMessage类继承的方法在编辑器中显示为“无法解析方法”编译错误,即使它们构建和运行良好。

Android Studio 单行编译报错

build.gradle除了在我的项目中为我的模块添加依赖项之外,我还需要做更多的事情吗?

0 投票
0 回答
86 浏览

java - java.lang.IllegalArgumentException:没有值的 WireType

使用com.squareup.wire wire-runtime.

代码:

错误信息:

注意:此代码在 99% 的设备上运行正常。但有时会得到这个错误,概率是1/100000。有谁知道 ?

0 投票
0 回答
315 浏览

java - 如何在不使用 Maven 的情况下使用 Wire 生成 .proto 文件?

对于一个项目,我一直在使用 Google 协议缓冲区,但现在我想切换到 Wire。我想像这样使用终端编译我的 .proto 文件

这很简单。

在 Wire README 中,他们举了一个例子:

我不知道这是如何工作的,因为我没有 jar 文件。这是我的原始文件路径:

在此处输入图像描述

那么我需要在我的项目中包含一个 jar 文件吗?如果是,其中必须包含哪些文件?或者在我的情况下命令行会是什么样子?

0 投票
1 回答
564 浏览

android - Proguard for Wire + Retrofit NoSuchMethodException

我的大脑被炸了。我搜索了 SO 寻求帮助,但似乎带有此异常的 Proguard 问题特定于相关应用程序。我一直在尝试使用 Proguard 来混淆/缩小我的应用程序,当我在 Generated APK 表单中运行它时,我的应用程序要么崩溃,要么让我遇到:

堆栈跟踪:

我的应用使用了来自 Square 的 Retrofit (2.1.0) 和 Wire。然后,当我的应用程序崩溃时,我正在检查mapping.txt文件以查看导致问题的类(我相信是com.company.project.a,对吗?)

无论如何,这是我的 proguard 文件(带有模糊的类名 fyi):

如果我能得到一些帮助,那就太棒了,如果我应该提供更多信息,请告诉我。

编辑:在标记答案的评论中回答的问题(供将来参考)

0 投票
1 回答
184 浏览

android - 使用 Square 的 Wire 时出现 D8 异常

在 Android 项目中添加 Square 的Wire库以支持 Protobuf 后,我在编译期间收到以下 D8 异常:

D8:程序类型已经存在:com.google.protobuf.DescriptorProto$ExtensionRange$ProtoAdapter_ExtensionRange

电线依赖:implementation 'com.squareup.wire:wire-runtime:2.2.0'

GradledependencyInsight在我的项目中揭示了另一个依赖项,即传递引入com.google.protobuf.nano:protobuf-javanano:3.1.0. 所以我添加了一个排除:

但这并没有解决问题。

是什么让 D8 悲伤,我怎样才能让它再次快乐?

更新

有问题的设置是:有 3 个模块A, B, C. A取决于BCB并且C都托管在内部 maven 服务器上,它们都依赖于wire-runtime以下 POM 条目:

我试过 Wire 版本 2.2 和 2.3.0。A当只依赖B或只依赖时,一切都是桃色的,但是当同时依赖和C时,D8 会变得悲伤。ABC

那么你如何依赖于传递依赖于 Wire 的多个模块呢?

0 投票
1 回答
85 浏览

retrofit - 如何用方线进行序列化

当我尝试序列化结果时出现 NullPointerException:java.lang.NullPointerException: Attempt to invoke virtual method 'byte[] com.squareup.wire.ProtoAdapter.encode(java.lang.Object)' on an null object reference

在 ObjectOutputStream 之前尝试使用 BufferedOutputStream
尝试搜索相同的错误

用于序列化的代码:
“结果”是使用线编译器自动生成的类。
result.toString() 返回一个字符串(所以真的不是空的)
如果整个“结果”要保存为纯文本,它将生成一个 5MB 的文件。

改造实例:

0 投票
1 回答
106 浏览

square-wire - 无法解析 x 导入

我得到了(使用:api'com.squareup.wire:wire-runtime:3.0.2')

我的理解是我不需要在 gradle 中定义任何东西来寻找进口?

但是当它说searching 0 proto paths,它让我想知道......

我的毕业典礼是:

wire { kotlin { android = true } }

文件结构是

我的导入行person.proto是:import "testing/tastes/tastes.proto";

我将非常感谢任何帮助:)

0 投票
2 回答
406 浏览

android-gradle-plugin - 使用带有线的 protobuf 导入(即 google/protobuf/timestamp.proto)

我正在尝试使用正方形的Wire生成文件。我可以很好地运行他们的示例,但是一旦我添加 import "google/protobuf/timestamp.proto";到他们的 .proto 文件以检查线如何处理时间戳,编译器就会出现以下异常:

Exception in thread "main" java.io.FileNotFoundException: Failed to locate google/protobuf/timestamp.proto in [src/main/proto]

我的路径中有 protoc($PATH=...usr/local/bin,protoc位于其中。timestamp.proto位于 下方/usr/local/include/google/protobuf)。我希望线编译器使用我系统中的 protoc,因此能够使用它的包含。

尝试使用 gradle 插件运行线并使用预编译的 jar 来获得相同的结果。

更新: 还尝试在 android studio 项目中使用 gradle 插件到相同的程度。

0 投票
1 回答
1700 浏览

android - 如何在 Kotlin 中为 Android 应用程序生成 protobuf?

任何人都可以帮助我了解如何在 Kotlin 中生成 protobuf?我听说过gRPC, wire, KotlinPoet, 但我不明白有什么区别,我应该使用哪个样本,任何简单的文件请填写免费与我分享?任何人都可以提供一个示例链接,该链接显示如何为 Kotlin 生成 Protobuf 示例?