Android上的AWS CloudWatch日志

Android上的AWS CloudWatch日志,android,aws-sdk,amazon-cloudwatch,Android,Aws Sdk,Amazon Cloudwatch,我正在尝试在Android应用程序中使用AWS CloudWatch日志。 我有aws客户端的以下配置: val basicAWSCredentials = BasicAWSCredentials( “Xxxxxx”, “Yyyyyy” ) val awsLogsClientBuilder = AWSLogsClientBuilder.standard() awsLogsClientBuilder.region = Regions.EU_WEST_2.name a

我正在尝试在Android应用程序中使用AWS CloudWatch日志。 我有aws客户端的以下配置:

val basicAWSCredentials = BasicAWSCredentials(
        “Xxxxxx”,
        “Yyyyyy”
)
val awsLogsClientBuilder = AWSLogsClientBuilder.standard()
awsLogsClientBuilder.region = Regions.EU_WEST_2.name
awsLogsClientBuilder.credentials = AWSStaticCredentialsProvider(basicAWSCredentials)
awsClient = awsLogsClientBuilder.build()
在建筑中,格雷德尔,我有

implementation ("com.amazonaws:aws-java-sdk-logs:1.11.367") {
    exclude module: 'joda-time'
}
应用程序在
awsLogsClientBuilder.build()
处崩溃,出现以下异常:

E/AndroidRuntime:致命异常:主 进程:com.xxxxxx.xxxxx,PID:28703 java.lang.NoSuchFieldError:没有Lorg/apache/http/conn/ssl/AllowlHostNameVerifier类型的静态字段实例;Lorg/apache/http/conn/ssl/AllowlHostNameVerifier类中;或者它的超类(声明'org.apache.http.conn.ssl.AllowAllHostnameVerifier'出现在/system/framework/framework.jar!classes2.dex中)

我也尝试过使用android特定的库:

androidSdkLogsVersion = "2.6.24"
implementation "com.amazonaws:aws-android-sdk-logs:$androidSdkLogsVersion"
和/或

implementation "com.amazonaws:aws-android-sdk-mobile-client:$androidSdkLogsVersion"
但如果将其与java sdk一起使用,则在编译时会出现错误:

程序类型已存在:com.amazonaws.ResponseMetadata

如果我没有导入java sdk,那么在编译时会出现一个错误,因为类
AWSLogsClientBuilder
不再存在

我应该如何在Android上创建记录器?

我就是这么做的:

在建造中,格雷德尔

androidSdkLogsVersion = "2.6.24"
implementation "com.amazonaws:aws-android-sdk-logs:$androidSdkLogsVersion"
要配置记录器,请执行以下操作:

val basicAWSCredentials = BasicAWSCredentials("xxxxx","yyyy")
val awsClient = AmazonCloudWatchLogsClient(basicAWSCredentials)
val regions: Regions = Regions.EU_WEST_1
awsClient.setRegion(Region.getRegion(regions.getName()))

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

在AWS Java SDK V2中,repo解决了这个主题

在模块级
build.gradle
中,添加依赖项:

dependencies {
    implementation 'software.amazon.awssdk:cloudwatch:2.13.49'
    implementation 'software.amazon.awssdk:url-connection-client:2.13.49'
}
现在,初始化CloudWatch客户端:

val cloudwatch=CloudWatchClient.builder()
.httpClient(UrlConnectionHttpClient.create())
.地区(美国东部地区1)
.credentialsProvider(yourCredentialsHere())
.build()

@parapawar您可以使用
CloudWatchLogsClient
而不是
CloudWatchClient
。请参阅并感谢,我使用了AmazonCloudWatchLogsClient,它与aws android sdk Logs配合良好。有一个包装器或库来处理这项工作