在 Bluemix 迁移到 cflinuxfs2 堆栈后,Android 移动首个应用程序停止工作
Posted
技术标签:
【中文标题】在 Bluemix 迁移到 cflinuxfs2 堆栈后,Android 移动首个应用程序停止工作【英文标题】:Android mobile first app stopped working after Bluemix moved to cflinuxfs2 stack 【发布时间】:2015-12-10 16:32:46 【问题描述】:我有一个基于 bluelist 应用程序的 android 应用程序,用于 bluemix BMS 服务。当堆栈移动到 cflinuxfs2 时,它昨天停止工作。
今天我在同一个 bluemix 服务上检查了我的 ios 应用程序,它正在工作。所以我查看了 Android 上的异常,它来自 MFPush,看起来上下文为空。有关抛出 NPE 的代码行,请参见附图。
堆栈跟踪是:java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Intent android.content.Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter)' on a null object reference
12-10 16:00:31.240 14482-14482/com.ibm.bluelist E/AndroidRuntime: at com.ibm.mobilefirstplatform.clientsdk.android.push.api.MFPPush.listen(MFPPush.java:232)
12-10 16:00:31.240 14482-14482/com.ibm.bluelist E/AndroidRuntime: at com.ibm.bluelist.GroupsActivity.onResume(GroupsActivity.java:250)
12-10 16:00:31.240 14482-14482/com.ibm.bluelist E/AndroidRuntime: at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1257)
12-10 16:00:31.240 14482-14482/com.ibm.bluelist E/AndroidRuntime: at android.app.Activity.performResume(Activity.java:6119)
【问题讨论】:
【参考方案1】:当您尝试调用时,MFPPush SDK 可能尚未初始化:
push.listen(notificationListener)
我建议保存推送值:
push = MFPPush.getInstance()
在类中初始化或注册(任何你认为更合适的)之后立即。
这样,在尝试侦听通知侦听器时,您将拥有适当的初始化 push
实例。
【讨论】:
以上是关于在 Bluemix 迁移到 cflinuxfs2 堆栈后,Android 移动首个应用程序停止工作的主要内容,如果未能解决你的问题,请参考以下文章
Django 应用程序部署@Bluemix,其中 postgresql 不能作为服务使用
如何将内部 MobileFirst 混合应用程序部署到专用的 Bluemix 环境?