【发布时间】:2018-08-10 11:45:18
【问题描述】:
我在低于 LOLLIPOP (api 21) 的 android 版本中包含了 okhttp3 并测试了 PATCH 和 DELETE 方法。我没有包括 Okio,它运行良好。但是,在 okhttp site 中,他们提到了以下内容:
您还需要 Okio,OkHttp 使用它来实现快速 I/O 和可调整大小的缓冲区。下载最新的 JAR。
任何人都可以确认是否可以安全地忽略 Okio 以使用 OkHttp 吗?
附加信息: 在使用 OkHttp 3.10.0 进行 PATCH 调用时,我在 Android 4.1.2 Samsung Galaxy Note 中看到了使用和不使用 okio 1.14.0 的相同警告日志。
03-02 14:18:39.850 6123-6159/ W/dalvikvm: VFY: 无法找到签名中引用的类 (Ljava/nio/file/Path;) 03-02 14:18:39.850 6123-6159/ W/dalvikvm: VFY: 无法找到签名中引用的类 ([Ljava/nio/file/OpenOption;) 03-02 14:18:39.850 6123-6159/ I/dalvikvm: 找不到方法 java.nio.file.Files.newOutputStream,引用自方法 okio.Okio.sink 03-02 14:18:39.855 6123-6159/ W/dalvikvm: VFY: 无法解析静态方法 30883: Ljava/nio/file/Files;.newOutputStream (Ljava/nio/file/Path;[Ljava/nio/file /OpenOption;)Ljava/io/OutputStream; 03-02 14:18:39.855 6123-6159/D/dalvikvm: VFY: 在 0x000b 处替换操作码 0x71 03-02 14:18:39.860 6123-6159/ W/dalvikvm: VFY: 无法找到签名中引用的类 (Ljava/nio/file/Path;) 03-02 14:18:39.865 6123-6159/ W/dalvikvm: VFY: 无法找到签名中引用的类 ([Ljava/nio/file/OpenOption;) 03-02 14:18:39.865 6123-6159/ I/dalvikvm: 找不到方法 java.nio.file.Files.newInputStream,引用自方法 okio.Okio.source 03-02 14:18:39.865 6123-6159/ W/dalvikvm: VFY: 无法解析静态方法 30882: Ljava/nio/file/Files;.newInputStream (Ljava/nio/file/Path;[Ljava/nio/file /OpenOption;)Ljava/io/InputStream;
【问题讨论】:
-
如果okhttp背后的公司告诉你需要它还不够,你在寻找什么样的确认?
-
"I didn't include Okio"的意思是你明确排除了吗?否则它将被包含为传递依赖项。
-
@Henry 我没有排除它。我不确定它是否包含在传递依赖中。由于未明确包含某些依赖项,我遇到了一些错误:例如:nimbus 需要 json smart。如果我没有在 gradle 文件中明确包含 json smart 作为依赖项,则会导致运行时崩溃。如果我没记错的话,是 NoClassDefFoundError。例如:编译 'com.nimbusds:nimbus-jose-jwt:4.26@jar' 编译组:'net.minidev',名称:'json-smart',版本:'2.3'
-
您可以在Android Studio的项目视图中打开“External Libraries”节点。这会向您显示包含的所有库(直接或传递)。
-
感谢@Henry 我确认 okio 1.14.0 与 okhttp3.10.0 一起列在“外部库”中。如果您在下面回答,我会接受您的回答。再次非常感谢! :)
标签: android okhttp okhttp3 okio