无法从okhttp导入请求和响应类

时间:2014-09-17 01:25:10

标签: java android cordova okhttp

我正在使用cordova开发Android应用。我有一个试图使用OkHttp的自定义插件。

其中,这是一个相关的进口集合:

import com.squareup.okhttp.MediaType;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request; // line 36
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response; // line 38

我在构建期间遇到了这个错误:

[javac] /path/to/class/SomeClass.java:36: error: Request is not public in com.squareup.okhttp; cannot be accessed from outside package
[javac] import com.squareup.okhttp.Request;
[javac]                           ^
[javac] /path/to/class/SomeClass.java:38: error: Response is not public in com.squareup.okhttp; cannot be accessed from outside package
[javac] import com.squareup.okhttp.Response;
[javac]                           ^

我正在使用最新的可用jar文件 - okhttp-2.0.0.jar,最新的Java JDK版本(1.8.0_20)等。

我错过了什么?通过查看okhttp的源代码及其示例,这些类肯定是公共的。此外,我从com.squareup.okhttp进口的其他产品也很好......

谢谢!

2 个答案:

答案 0 :(得分:1)

事实证明,科尔多瓦拥有自己的okhttp版本,目前版本为v1.3 - 这是旧版本,并且有很多不同的API。即,请求和响应类不公开。

我的问题是编译器没有使用我的cordova插件中包含的okhttp v2 jar。我不想处理这些问题,我已将我的代码更新为内联v1.3,并filed a bug将更新版本的okhttp更新为Cordova的问题跟踪器中的2+。

答案 1 :(得分:0)

将此添加到您的应用程序级别build.gradle

dependencies {
     implementation 'com.squareup.okhttp3:okhttp:3.14.4'
}