首页 > 解决方案 > AmazonSQSClientBuilder.defaultClient() java.lang.NoSuchFieldError:没有 Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier 类型的静态字段实例

问题描述

java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.msgqueue3/com.example.msgqueue3.MainActivity}:java.lang.NullPointerException:尝试调用接口方法 'com.amazonaws.services.sqs.model.CreateQueueResult com.amazonaws.services.sqs.AmazonSQS.createQueue(com.amazonaws.services.sqs.model.CreateQueueRequest)' 在空对象引用上

AWS SQS 连接问题

标签: javaandroidandroid-studio

解决方案


我建议使用 AWS Java SDK V2。在 Android 上工作时,它将允许您使用备用 HTTP 运行时,并避免 Apache 客户端的一些混乱。

AWS Java SDK V2 存储库中的GitHub 问题 #1180解决了此主题。

具体来说,在您的 module-levelbuild.gradle中,添加依赖项:

dependencies {
    implementation 'software.amazon.awssdk:sqs:2.13.49'
    implementation 'software.amazon.awssdk:url-connection-client:2.13.49'
}

现在,初始化 SQS 客户端:

val sqs = SqsClient.builder()
    .httpClient(UrlConnectionHttpClient.create())
    .region(Region.US_EAST_1)
    .credentialsProvider(yourCredentialsHere())
    .build()

推荐阅读