我的最终目标是通过 SNS 向 iOS 应用发送推送通知。我正在逐步完成本教程:http ://docs.aws.amazon.com/sns/latest/dg/mobile-push-apns.html 。
我已经添加了我的 AWS 凭证,并为我的开发密钥、证书、私钥和我的应用程序的当前推送令牌添加了相应的 apns 凭证。当我运行教程时,我得到:
Exception in thread "main" java.lang.NullPointerException
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.getValidNotificationAttributes(AmazonSNSClientWrapper.java:162)
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.publish(AmazonSNSClientWrapper.java:80)
at com.amazonaws.sns.samples.tools.AmazonSNSClientWrapper.demoNotification(AmazonSNSClientWrapper.java:131)
at com.amazonaws.sns.samples.mobilepush.SNSMobilePush.demoAppleSandboxAppNotification(SNSMobilePush.java:438)
at com.amazonaws.sns.samples.mobilepush.SNSMobilePush.main(SNSMobilePush.java:68)
在 SNSMobilePush.java 的顶部有一个名为 attributesMap 的 Map。它最初将键 Platform.APNS 和 Platform.APNS_SANDBOX 的值设置为 null。这些值在代码中的任何地方都不会更改,并且会导致空指针异常。本教程并未指示更改这些值。
我没有做任何超出或超出教程说明的事情。
我知道我的凭据是正确的,因为我确实通过 Amazon 管理控制台使用这些相同的凭据向我的 iOS 应用程序发送了一条消息。
谁能指出
- 如果教程不完整
- 与 Platform.APNS_SANDBOX 关联的值应该是什么才能使其正常工作
- 任何帮助我解决这个问题的提示
更新我在 getValidNotificationAttributes() 中添加了一个空检查,现在我可以使用本教程使用 sns 和 apns 发送推送通知。