android 上的 async-http-client 错误

Errors with async-http-client on android

将库 async-http-client 添加为 gradle 的依赖项时,在编译时会出错。

build.gradle :

错误日志:

有什么解决办法吗?

这是因为您正在执行使用 java 1.8 的应用程序,但库可能需要 1.7

试试这个解决方案 转到文件->项目结构->应用程序->(属性选项卡)将源和目标兼容性更改为 1.7

如果不起作用,请尝试安装 jdk 1.7

我在你的错误屏幕上看到了。

If you are using the 'java' gradle plugin in a library submodule add targetCompatibility = '1.7' sourceCompatibility = '1.7' to that submodule's build.gradle file

如果我没弄错的话 gradle android plugin extends 'java' plugin,所以你可以在你的 "android" 块中添加这两行 build.gradle :

apply plugin: 'com.android.application'

android {

    targetCompatibility = '1.7'
    sourceCompatibility = '1.7'

    ...
}

将此添加到 defaultConfig 子模块的 build.gradle 文件中,它应该可以工作。

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

免责声明:我是 AsyncHttpClient 的开发者

您将无法在 Android 上使用 AsyncHttpClient。 它使用仅在 JDK8 中可用的 JDK API(以及一些从未在 Android 中引入的 JDK7 API,即使在 supposedly/claimed JDK7兼容Android SDK,如SSLParameters.html#setEndpointIdentificationAlgorithm).

这个库旨在为服务器到服务器通信提供高性能非阻塞 IO,我只将它开发为 Gatling 的底层 HTTP 库。支持Android不是目标,因为它冲突太多。

IMO,Android 是一个破碎的生态系统(碎片化,JDK6 兼容,与 OpenJDK 不兼容)并且 Android 开发人员应该使用 Android 由主要兴趣真正 Android 的人开发的量身定制的库。对于 Android HTTP 客户端,我推荐 Square 的 OkHttp.