Android上的AWS CloudWatch日志
我正在尝试在Android应用程序中使用AWS CloudWatch日志。 我有aws客户端的以下配置: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
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配合良好。有一个包装器或库来处理这项工作