【问题标题】:retrofit cannot access HttpUrl改造无法访问 HttpUrl
【发布时间】:2015-10-02 04:33:26
【问题描述】:

我已将以下库包含到我的应用程序的 lib 文件夹中:

  1. 编译文件('libs/retrofit-2.0.0-beta2.jar')
  2. 编译文件('libs/converter-gson-2.0.0-beta1.jar')

当要运行应用程序时,它给了我这样一个错误:

错误:(17, 17) 错误: 无法访问 HttpUrl 类文件 com.squareup.okhttp.HttpUrl 未找到

我已经创建了包括改造在内的应用程序,如下所述: The biggest update yet on the best HTTP Client Library for Android

  1. 正如那里所说:但在 Retrofit 2.0 中,现在需要 OkHttp 并自动设置为依赖项。

    -- 所以,没有将 OkHttp 添加到我的项目中

  2. 正如那里所说:但在 Retrofit 2.0 中,Converter 不再包含在包中。您需要自己插入一个转换器,否则 Retrofit 将只能接受字符串结果。因此,Retrofit 2.0 不再依赖 Gson。

    -- 所以,我决定在我的应用中包含 Gson: com.squareup.retrofit:converter-gson,而不是 'com.google.code.gson:gson:2.3.1 '

任何关于如何使用改造的建议都会有所帮助。请告诉我如何纠正这个主要错误?

已解决: 我搜索并找到了这个解决方案。如果您使用代理连接互联网,只需将其添加到 gradle.properties 文件:

systemProp.http.proxyHost=xxx systemProp.http.proxyPort=xxx systemProp.http.proxyUser=xxx systemProp.http.proxyPassword=xxx systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost

systemProp.https.proxyHost=xxx systemProp.https.proxyPort=xxx systemProp.https.proxyUser=xxx systemProp.https.proxyPassword=xxx systemProp.https.nonProxyHosts=*.nonproxyrepos.com|localhost

感谢@ilya。只是网络问题

【问题讨论】:

    标签: android gradle gson android-gradle-plugin retrofit


    【解决方案1】:

    Jars 不包含有关其依赖项的任何信息 因此,当您添加 jars 时,您还必须下载并添加 OkHttp/Gson jars。

    compile files('libs/okhttp.jar')
    compile files('libs/gson.jar')
    

    但是如果你以这种方式添加你的依赖

    compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
    

    所有其他需要的库将由 gradle 自动下载和添加。

    最终的 gradle.build 应该包含这两行:

    compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'
    

    【讨论】:

    • 当然,但是我尝试将这个库添加到我的项目中,因为我有 gradle 问题。我已经发布了关于这个问题的另一个问题:stackoverflow.com/questions/32879768/…如果你能帮助我,使用 gradle 会很高兴)
    • 关于您的链接 - 我认为您的 jcenter 存在连接问题。
    • 是的,只有连接问题会导致它。但我能做什么?我打开了 Settings->Appearance$Behavior->HTTP Proxy 。并检查了自动检测代理设置。这个窗口的底部有检查连接按钮。我插入了jcenter.bintray.com 链接并单击以测试并成功执行。也许在另一个地方我必须设置代理设置?
    • 我在 gradle.properties 文件中添加了代理的系统属性。它同步了。但现在它给了我:GsonConverterFactory 不能通过方法调用转换转换为工厂
    • 更多的是与改造本身有关。我认为最好用您的代码发布另一个问题。我不能不看就推荐任何东西。
    【解决方案2】:

    我的 Eclipse 项目遇到了同样的问题。如果您想使用库,请将这些 jar 放在您的 libs 文件夹中:

    • converter-gson-2.0.0-beta2.jar
    • gson-2.3.1.jar
    • okhttp-2.7.5.jar
    • okio-1.8.0.jar
    • retrofit-2.0.0-beta2.jar

    在那之后,我可以使用带有 gson 转换器的改造。

    希望有帮助

    【讨论】:

      猜你喜欢
      • 2015-12-30
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      相关资源
      最近更新 更多