簡體   English   中英

Android 上的 AWS CloudWatch 日志

[英]AWS CloudWatch Log on Android

我正在嘗試在 Android 應用程序中使用 AWS CloudWatch Log。 我有 aws-client 的以下配置:

val basicAWSCredentials = BasicAWSCredentials(
        “Xxxxxx”,
        “Yyyyyy”
)
val awsLogsClientBuilder = AWSLogsClientBuilder.standard()
awsLogsClientBuilder.region = Regions.EU_WEST_2.name
awsLogsClientBuilder.credentials = AWSStaticCredentialsProvider(basicAWSCredentials)
awsClient = awsLogsClientBuilder.build()

在 build.gradle 我有

implementation ("com.amazonaws:aws-java-sdk-logs:1.11.367") {
    exclude module: 'joda-time'
}

該應用程序在awsLogsClientBuilder.build()處崩潰, awsLogsClientBuilder.build()出現以下異常:

E/AndroidRuntime:致命異常:主進程:com.xxxxxx.xxxxx,PID:28703 java.lang.NoSuchFieldError:沒有 Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier 類型的靜態字段實例; 在類 Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier 中; 或其超類('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 上創建記錄器?

這就是我所做的:

在 build.gradle

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 SDK V2 在 Android 上工作時,它將允許您使用備用 HTTP 運行時,並避免與 Apache 客戶端的一些混亂。

AWS Java SDK V2 存儲庫中的GitHub 問題 #1180解決了此主題。

在您的模塊級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())
    .region(Region.US_EAST_1)
    .credentialsProvider(yourCredentialsHere())
    .build()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM