我正在使用 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的源代码和他们的例子,这些类肯定是Public的。此外,我从 com.squareup.okhttp
导入的其他内容都运行良好...
谢谢!
最佳答案
事实证明,cordova 附带了它自己的 okhttp 版本,目前是 v1.3 - 这是旧的,并且具有很大不同的 API。也就是说,请求和响应类不是公开的。
我的问题是编译器没有使用我包含在我的 cordova 插件中的 okhttp v2 的 jar。不想处理这些问题,我更新了我的代码以与 v1.3 和 filed a bug 内联。用于在 Cordova 的问题跟踪器中将 okhttp 的版本更新到 2+。
关于java - 无法从 okhttp 导入请求和响应类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25880866/