【问题标题】:Cannot import Request and Response classes from okhttp无法从 okhttp 导入请求和响应类
【发布时间】:2014-09-17 01:25:09
【问题描述】:

我正在使用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 导入的其他内容也正常...

谢谢!

【问题讨论】:

    标签: java android cordova okhttp


    【解决方案1】:

    事实证明,cordova 附带了自己的 okhttp 版本,目前是 v1.3——它很旧,并且有很大不同的 API。也就是说,Request 和 Response 类不是公开的。

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

    【讨论】:

    • 您是如何在 1.3.0 中更新您的 okhttp 使用情况的?当您无法访问 Request 或 Response 类时,您在使用什么?
    【解决方案2】:

    将此添加到您的 App 级别 build.gradle

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

    【讨论】:

      猜你喜欢
      • 2019-04-12
      • 2020-03-31
      • 2015-06-11
      • 1970-01-01
      • 2019-08-27
      • 2020-03-28
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多