首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Okhttp3 jar缺少okio?

Okhttp3 jar缺少okio?
EN

Stack Overflow用户
提问于 2021-11-16 08:17:55
回答 1查看 255关注 0票数 0

我正在试着做一个简单的Java程序来上传一堆图片,我必须要记住。但我遇到了一个又一个问题,不能让okhttp正常工作。在这一点上,我花在解决这个问题上的时间比我自己编写程序所需的时间要长得多。我对这种东西很陌生,所以请耐心点。

所以,现在我有来自this tutorial的以下代码

代码语言:javascript
复制
RequestBody requestBody = new MultipartBody.Builder()
                .addFormDataPart("new", "This is my new TODO")
                .addFormDataPart("image", "attachment.png",
                        RequestBody.create(new File(""), MediaType.parse("image/png"))
                )
                .setType(MultipartBody.FORM)
                .build();

它在RequestBody.create()部分给出一个错误:

代码语言:javascript
复制
The type okio.ByteString cannot be resolved. It is indirectly referenced from required .class files

当我在谷歌上搜索这个错误时,我找到了this page,它说我缺少okio库。我以为这会包含在okhttp jar中。我还是下载了okio jar,并将其添加到我的项目中,但错误没有改变。我不知道还会出什么问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-16 21:57:07

好了,我知道你的问题了。

3.0.0-Alpha-10及以上版本的Okio源代码已用Kotlin重写。

你的代码需要ByteString.class,为此你需要一个Java .class。

使用这个版本的https://repo1.maven.org/maven2/com/squareup/okio/okio/3.0.0-alpha.9/在迁移到Kotlin之前,这个版本是用Java编写的。

下面的代码将被编译:

代码语言:javascript
复制
package example;

import java.io.File;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;


public class OkHttpExample {

    public void example() {
        
        RequestBody requestBody = new MultipartBody.Builder()
                .addFormDataPart("new", "This is my new TODO")
                .addFormDataPart("image", "attachment.png",
                        RequestBody.create(new File(""), MediaType.parse("image/png"))
                )
                .setType(MultipartBody.FORM)
                .build();
    }
    
}

请参阅构建路径依赖关系:

一旦进入构建路径,您就可以在eclipse中打开jar文件,并看到其内容: ByteString.class is included:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69985777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档