我正在尝试在Android上运行一个基于Apache Cordova的带有PushWoosh插件的应用程序。为了避免Android上的碎片问题,我们使用MobileChrmeApp构建我们的Android版本的应用程序。但是,我无法通过PushWoosh注册推送消息的设备。该代码在iOS上完美运行。
一旦我运行plugins.pushNotification.registerDevice
,就会发生错误。
这就是adb logcat
给我的:
D/PushNotifications(17915): Plugin Called
W/System.err(17915): java.lang.NullPointerException
W/System.err(17915): at com.pushwoosh.plugin.pushnotifications.PushNotifications.internalRegister(PushNotifications.java:189)
W/System.err(17915): at com.pushwoosh.plugin.pushnotifications.PushNotifications.execute(PushNotifications.java:390)
W/System.err(17915): at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:82)
W/System.err(17915): at org.apache.cordova.PluginManager.exec(PluginManager.java:128)
W/System.err(17915): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:63)
W/System.err(17915): at org.apache.cordova.engine.crosswalk.XWalkExposedJsApi.exec(XWalkExposedJsApi.java:40)
W/System.err(17915): at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
W/System.err(17915): at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:28)
W/System.err(17915): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err(17915): at android.os.Looper.loop(Looper.java:137)
W/System.err(17915): at android.os.HandlerThread.run(HandlerThread.java:60)
Java代码似乎以某种方式失败了——但为什么以及如何失败,我不知道(web开发人员记着,我不懂Java)。该应用程序从不调用任何远程资源,因此错误必须在应用程序设置中的某个位置。
有什么想法吗?感谢所有的帮助(如果你在哥本哈根,甚至可能会得到一杯啤酒的奖励)。
编辑:更详细地查看adb logcat -s System.err
会发现初始化也失败了,可能会导致其他错误
W/System.err( 7439): org.json.JSONException: No value for projectid
W/System.err( 7439): at org.json.JSONObject.get(JSONObject.java:354)
W/System.err( 7439): at org.json.JSONObject.getString(JSONObject.java:510)
W/System.err( 7439): at com.pushwoosh.plugin.pushnotifications.PushNotifications.initialize(PushNotifications.java:174)
W/System.err( 7439): at com.pushwoosh.plugin.pushnotifications.PushNotifications.execute(PushNotifications.java:384)
W/System.err( 7439): at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:82)
W/System.err( 7439): at org.apache.cordova.PluginManager.exec(PluginManager.java:128)
W/System.err( 7439): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:63)
W/System.err( 7439): at org.apache.cordova.engine.crosswalk.XWalkExposedJsApi.exec(XWalkExposedJsApi.java:40)
W/System.err( 7439): at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
W/System.err( 7439): at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:28)
W/System.err( 7439): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 7439): at android.os.Looper.loop(Looper.java:137)
W/System.err( 7439): at android.os.HandlerThread.run(HandlerThread.java:60)
W/System.err( 7439): java.lang.NullPointerException
W/System.err( 7439): at com.pushwoosh.plugin.pushnotifications.PushNotifications.internalRegister(PushNotifications.java:190)
W/System.err( 7439): at com.pushwoosh.plugin.pushnotifications.PushNotifications.execute(PushNotifications.java:393)
W/System.err( 7439): at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:82)
W/System.err( 7439): at org.apache.cordova.PluginManager.exec(PluginManager.java:128)
W/System.err( 7439): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:63)
W/System.err( 7439): at org.apache.cordova.engine.crosswalk.XWalkExposedJsApi.exec(XWalkExposedJsApi.java:40)
W/System.err( 7439): at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
W/System.err( 7439): at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:28)
W/System.err( 7439): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 7439): at android.os.Looper.loop(Looper.java:137)
W/System.err( 7439): at android.os.HandlerThread.run(HandlerThread.java:60)
W/System.err( 7439): java.lang.NullPointerException
W/System.err( 7439): at com.pushwoosh.plugin.pushnotifications.PushNotifications.internalRegister(PushNotifications.java:190)
W/System.err( 7439): at com.pushwoosh.plugin.pushnotifications.PushNotifications.execute(PushNotifications.java:393)
W/System.err( 7439): at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:82)
W/System.err( 7439): at org.apache.cordova.PluginManager.exec(PluginManager.java:128)
W/System.err( 7439): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:63)
W/System.err( 7439): at org.apache.cordova.engine.crosswalk.XWalkExposedJsApi.exec(XWalkExposedJsApi.java:40)
W/System.err( 7439): at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
W/System.err( 7439): at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:28)
W/System.err( 7439): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 7439): at android.os.Looper.loop(Looper.java:137)
W/System.err( 7439): at android.os.HandlerThread.run(HandlerThread.java:60)
非常感谢!
Github问题。
您似乎没有为推送通知提供凭据。它应该在你的AndroidManifest.xml 中
看这里的第4步:https://www.pushwoosh.com/programming-push-notification/android/native-android-sdk-integration/
或者在onDeviceReady功能中,请参阅此处:https://github.com/Pushwoosh/phonegap-3-sample-app/blob/master/www/js/PushwooshAndroid.js
(从答案开始,因为我没有足够的声誉来评论)
你在模拟器上测试推送通知吗?(你在Github问题中提到了"测试设备",所以只是确认一下)
我问,因为模拟器既不能订阅也不能接收推送通知。