android - 改造无法访问 HttpUrl

标签 android gradle gson android-gradle-plugin retrofit

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

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

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

Error:(17, 17) error: cannot access HttpUrl class file for com.squareup.okhttp.HttpUrl not found

我已经创建了包括改造在内的应用程序,如下所述: 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。只是网络问题

最佳答案

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

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'

关于android - 改造无法访问 HttpUrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32900595/

相关文章:

Java Android SharedPreferences 问题

android - 创建 AlertDialog 时出错

android - 更改语言环境时 DateFormat 不会更改

gradle - 如何解决重复的Gradle依赖关系问题

java - 多模块(multi scm)gradle项目开发

Android map v2 缩放以显示所有标记

android - Maven-Publish 不在 POM 中发布 API/实现依赖

android - 改造 2.0.0 beta2 : expected begin_array but was begin_object

java - 将具有重复键的 JSON 对象转换为 JSON 数组

java - 使用 Jackson 将递归对象序列化到一定深度