我正在使用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
进口的其他产品也很好......
谢谢!
答案 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'
}