问题标签 [aws-sdk-android]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
20589 浏览

android - java.lang.NoClassDefFoundError:解析失败:Lorg/apache/commons/logging/LogFactory

已经需要提出类似的问题。但是由于Android平台兼容性的变化,这个似乎比以前的更复杂。

这是我注册 Android Beta Program 的 Pixel 和 Pixel2 的错误日志

在运行 Android 7.0 及更低版本的设备上运行相同的代码时,它工作得非常好。

我也尝试向我的项目添加依赖项

添加此依赖项使应用程序在 Pixel 和 Pixel 中运行,但随后它在所有其他设备中崩溃并显示异常

我已经尝试在 ProGuard 中进行所有更改。这是我的proguard配置

仍然导致崩溃。

此问题与 Amazon AWS 开发工具包有关 - https://github.com/aws/aws-sdk-android/issues/476

在 AWS 更新其 SDK 以解决此问题之前,是否有任何解决方法?

0 投票
1 回答
148 浏览

android - android sdk的aws cognito登录网址是什么

我制作了一个使用 aws cognito sdk 登录用户池的 android 应用程序。这将返回 3 个令牌(id、访问、刷新),然后我可以调用我的 api 网关。这一切都有效,没有问题。但是,当我调试应用程序时,我看不到我的应用程序对 cognito 进行的调用以获取这些令牌。我已尝试按照https://docs.aws.amazon.com/mobileanalytics/latest/ug/sdk-logging.html添加详细日志记录,但这没有奏效。文档https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html中描述了 5 个端点,但它们似乎都没有使用用户名/密码。

0 投票
2 回答
4156 浏览

android - AWS S3 安卓开发工具包 2.11.0

我的代码如下所示:

从“com.amazonaws:aws-android-sdk-s3:2.7.5”升级到“com.amazonaws:aws-android-sdk-s3:2.11.0”时,我的 logcat 中出现以下错误,即使上传仍在工作:

当我更改代码以包含 TransferNetworkLossHandler 时:

不做任何事情,我不会再犯错误。

但是,这不是此错误消息的意图。它告诉您使用 TransferNetworkLossHandler,但没有关于如何使用它的文档。

如果上传不起作用,我只想向用户显示错误(如 Toast 或 AlertDialog)。所以我根本不需要处理程序。但我也不希望每次都将错误消息写入我的日志。此外,我不想使用这种只抓取一个实例而不用它做任何事情的骇人听闻的解决方案。

对于我的情况,这个处理程序的正确用途是什么?

0 投票
1 回答
188 浏览

amazon-web-services - AWS IoT Core 和移动 SDK - 缓存容量和缓存控制?

AWS IoT SDK for Things or for Mobile (Android/iOS) 如何在网络不存在或设备(Thing/Mobile)未连接到 Internet 时存储数据以供稍后同步。在 AWS IoT SDK 和云之间进行通信时,是否存在 Storage Manager 和 Sync Manager 概念,因为在设备未连接到 Internet 时似乎需要它?如果有,那么这种存储的限制是多少?

已经经历了 Persistence Sessions 的概念。

0 投票
1 回答
154 浏览

amazon-web-services - AWS Cognito 授权方不使用适用于 Android 的 AWS 开发工具包

在我的 Android 项目中,我使用 AWS SDK 注册用户,这要归功于 Cognito 并在 API Gateway 中调用 API。在我的 Cognito 用户池中,我创建了一个用户池组。该组的目的是只允许该组中的用户调用特定的 API。

为了使其工作,我尝试遵循本教程(尤其是视频)。因此,我创建了一个 Cognito 授权方,将其添加到 API Gateway 中的方法请求中,并尝试使用 AWS 开发工具包从我的应用程序调用 API:

问题是:无论用户是否经过身份验证,以及是否在组中,当我testApiGet()在我的应用程序中调用时,我总是会收到以下错误:401 Unauthorized,即使我在我的 IAM 角色中拥有正确的授权。经过一番研究,似乎缺少 id 令牌,这可能是我收到该错误的原因。

但它不应该由适用于 Android 的 AWS 开发工具包自动管理吗?我该如何解决?

谢谢你的帮助。

0 投票
1 回答
271 浏览

android - 适用于 android 的 AWS sdk:如何更改主机端点

我正在使用芥末进行文件存储,我需要将AWS 开发工具包客户端主机 URL 更改为芥末的 URL。我怎样才能做到这一点?

0 投票
0 回答
88 浏览

java - java.lang.NoSuchMethodError: 没有虚拟方法 canCancel(Z)Lcom/amazonaws/mobile/auth/ui/AuthUIConfiguration$Builder

我正在利用 Auth.UI 方法使用 AWS Mobile SDK 开发示例 Android 应用程序。

构建和运行应用程序时,它会崩溃并出现以下错误:

我的应用程序和配置文件如下:

主要活动:

摇篮文件:

LogCat 日志:

0 投票
1 回答
101 浏览

android - InvalidConfigurationException:未使用 AmazonCognitoSync 服务为 SNS 设置身份池

我一直在尝试将AWS 开发工具包用于推送通知。但是我遇到了错误。试图找到解决方案,但找不到太多支持。

iOS 和 Web 推送通知运行良好

一切已经设置和完成:

  • AWS 后端和控制台设置到位。
  • 身份池 ID 和其他密钥到位。
  • ARN 主题到位。

安卓端:

  • AWS 开发工具包依赖项:

minSdkVersion 21

targetSdkVersion 29

  • 在 onCreate 里面:

错误我在 client.registerDevice("GCM", registrationId);

原因:com.amazonaws.services.cognitosync.model.InvalidConfigurationException:未为 SNS 设置身份池(服务:AmazonCognitoSync;状态代码:400;错误代码:InvalidConfigurationException;请求 ID:a858aaa2-****** ****************)

笔记:

我尝试使用 Amplify 库,但即使这样也没有用。此外,在 iOS 和 Web 端,他们使用 AWS SDK。所以我也一定会使用相同的。这甚至不是特定于设备的错误。

我需要做的就是设置我的项目以获取推送通知。但我被困在最初的一步。无法为 Android 设备创建端点。

0 投票
1 回答
2456 浏览

android - 如何使用 AWS Amplify Android 强制刷新身份验证令牌?

我找不到有关如何使用 AWS 的 Amplify Android 库刷新访问令牌的信息。

在文档和一些论坛中,有人建议这一切都是自动发生的。但就我而言,事实并非如此。

在应用程序中,我使用 Amplify Auth 进行用户身份验证,还使用 ​​Amplify Storage 和 Amplify Predictions。

为了查询我的数据库,我使用了DynamoDBMapper适用于 Android 的 AWS 开发工具包。

到目前为止,我已尝试通过以下方式强制刷新令牌:

  1. auth.currentUser
  2. AWSMovileClient.getInstance().tokens
  3. AWSMobileClient.getInstance().currentUserState()
  4. Amplify.Auth.fetchAuthSession()

前三个都没有工作。fetchAuthSession(...)是我现在使用的技术,但它是异步的,需要一点时间才能产生结果。我必须在我的splash activity. 否则,如果它是异步的并且有依赖于其结果的对数据库权限的请求,则数据库调用将导致NotAuthorizedException.

此外,刷新令牌可以设置为 10 年,因此目前不是问题。问题是旧的访问令牌过期后没有创建新的访问令牌,我无法执行任何经过身份验证的用户操作。

有没有办法快速检查令牌是否有效——如果不是,刷新它们?

0 投票
1 回答
168 浏览

android - 如何将 aws 生成的 Android SDK 与 api 网关一起使用

我部署AWS API Gateway的有一个端点: /users使用DELETE方法。我正在尝试从我的android app使用中调用此方法generated SDK。我已经部署了 API,然后在 API Gateway 控制台中生成了 SDK,并下载了名为aws-apigateway-api-sdk-1.0.0. 然后我在文件夹中运行“mvn install”并将生成的 .jar 文件和库复制到我的项目中并添加了 gradle 导入(基本上我按照这些说明执行了所有操作,直到第 7 点)。

现在我想在我的 android 代码中创建 SDK。在说明中,他们这样做:

我的问题是这个SimpleCalcClient.class-> 我知道我需要用我自己的值替换它,但是在我生成的目标文件夹中,我只找到了名为的类LambdaSimpleProxyClient.class,它是一个接口。不过,这似乎不是正确的课程:

生成的 LambdaSimpleProxyClient.class

我仍然尝试使用ApiClientFactory这个类,现在我的代码如下所示:

LambdaSimpleProxyClass.java是在我运行的第 5 步中生成的,mvn install其中包含方法usersDelete(),这对我来说很有意义,因为这符合我调用 API 端点的方式并且看起来很有希望,但我不认为这是我应该使用的类这里(但.class我的 zip 文件夹中没有其他文件由以下文件生成API Gateway Generate SDK Method

我也不明白如何username在这里传递我的查询参数,但我仍然尝试调用这个方法。然后程序在 client.usersDelete() 处崩溃;

那么除了LambdaSimpleProxyClient.class我应该在那里使用什么?.class我生成的 zip 文件夹aws-apigateway-api-sdk-1.0.0或我的 maven 生成的目标文件夹中没有其他文件。

欢迎任何提示