Обязательно ли включать okio, если приложение хочет использовать okhttp3?

Я включил okhttp3 и протестировал методы PATCH и DELETE в версиях Android меньше, чем LOLLIPOP (api 21). Я не включал Окио и все работало нормально. Но на сайте okhttp упоминается следующее:

Вам также понадобится Okio, который OkHttp использует для быстрого ввода-вывода и буферов изменяемого размера. Загрузите последний JAR-файл.

Может ли кто-нибудь подтвердить, можно ли безопасно игнорировать Okio, чтобы использовать OkHttp?

Дополнительная информация: я видел одни и те же журналы предупреждений с okio 1.14.0 и без него в Android 4.1.2 Samsung Galaxy Note при выполнении вызова PATCH с OkHttp 3.10.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: замена кода операции 0x71 на 0x000b /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;


person garnet    schedule 02.03.2018    source источник
comment
какое подтверждение вы ищете, если компания, стоящая за okhttp, говорит вам, что вам это нужно, недостаточно?   -  person Tim    schedule 02.03.2018
comment
Я не включил Okio, значит вы его явно исключили? В противном случае он будет включен как транзитивная зависимость.   -  person Henry    schedule 02.03.2018
comment
@ Генри, я не исключал этого. Я не был уверен, включена ли она в качестве транзитивной зависимости. Я столкнулся с некоторыми ошибками из-за того, что явно не включил некоторые зависимости: например: nimbus требует json smart. Если я не включу json smart явно в файл gradle в качестве зависимости, это приведет к сбою во время выполнения. Если я правильно помню, это был NoClassDefFoundError. например: скомпилировать 'com.nimbusds:nimbus-jose-jwt:4.26@jar' группу компиляции: 'net.minidev', имя: 'json-smart', версию: '2.3'   -  person garnet    schedule 02.03.2018
comment
Вы можете открыть узел «Внешние библиотеки» в представлении проекта Android Studio. Это показывает вам все библиотеки, которые включены (напрямую или транзитивно).   -  person Henry    schedule 02.03.2018
comment
Спасибо @Henry. Я подтвердил, что okio 1.14.0 указан во внешних библиотеках вместе с okhttp3.10.0. Я приму ваш ответ, если вы ответите на него ниже. Большое спасибо еще раз! :)   -  person garnet    schedule 02.03.2018


Ответы (1)


okio необходимо для работы okhttp3. Однако он включается автоматически как транзитивная зависимость. Поэтому нет необходимости включать его явно.

person Henry    schedule 02.03.2018