[Aerogear-users] An app crash scenario after clicking on push notification

Federico Cerminara fedecentrico at gmail.com
Thu Apr 20 10:42:38 EDT 2017


Hi Summers,
even if I am not the bravest developer I know, the main trouble is the lack
of time available to spend on this job. Before deciding internally how to
face the problem, I'd like to ask you if you've already scheduled a fixing
activity for this bug in a future release (and eventually which could be a
date to have an official fix).
Instead, if you think the better approach is to trust on my bravery, I'm
here to ask you how I could recompile the plugin after applyng all the
modifies it requires. What can you suggest me to do? Wait anyway for a
future release or start testing a solution and after sending a pull
request?

Thanks anyway, Federico.



2017-04-20 15:24 GMT+02:00 Summers Pittman <supittma at redhat.com>:

>
>
> On Thu, Apr 20, 2017 at 6:08 AM, Federico Cerminara <
> fedecentrico at gmail.com> wrote:
>
>> Hi Summers,
>> first of all, i'd like to thank you for your precious suggestion.
>> I managed to launch my app using Android Emulator and together with the
>> logcat tool.
>> Thanks to this new approach, i was able to take some lines from the
>> logcat stacktrace and now i can share them in the following.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *04-20 11:35:44.861 31658 31658 E AndroidRuntime:
>> java.lang.RuntimeException: Unable to start activity
>> ComponentInfo{org.jboss.aerogear.android.cookbook.aerodoc/org.jboss.aerogear.cordova.push.PushHandlerActivity}:
>> java.lang.NullPointerException: Attempt to invoke interface method
>> 'java.util.Collection org.jboss.aerogear.android.store.Store.readAll()' on
>> a null object reference... ... ... 04-20 11:35:44.861 31658 31658 E
>> AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to
>> invoke interface method 'java.util.Collection
>> org.jboss.aerogear.android.store.Store.readAll()' on a null object
>> reference04-20 11:35:44.861 31658 31658 E AndroidRuntime:     at
>> org.jboss.aerogear.cordova.push.PushHandlerActivity.processPushBundle(PushHandlerActivity.java:60)04-20
>> 11:35:44.861 31658 31658 E AndroidRuntime:     at
>> org.jboss.aerogear.cordova.push.PushHandlerActivity.onCreate(PushHandlerActivity.java:45)04-20
>> 11:35:44.861 31658 31658 E AndroidRuntime:     at
>> android.app.Activity.performCreate(Activity.java:6876)04-20 11:35:44.861
>> 31658 31658 E AndroidRuntime:     at android.app.Instrumentation.ca
>> <http://android.app.Instrumentation.ca>llActivityOnCreate(Instrumentation.java:1135)04-20
>> 11:35:44.861 31658 31658 E AndroidRuntime:     at
>> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207)04-20
>> 11:35:44.861 31658 31658 E AndroidRuntime:     ... 9 more*
>> As i wrote in the first mail, this is the app crash scenario. If I have
>> my app closed or already open, clicking on push notification seems to
>> behave correctly, bringing user to application first page. Instead, if I
>> try to close all my applications after receiving one or more push
>> notification (image notification frequency is quite low) and then I try to
>> click on my waiting push, application crashes showing a message that sound
>> quite like this “The program <app_name> has been interrupted”
>>
>> Reading the log stacktrace, it seems like there's a NPE in
>> *PushHandlerActivity.java:60*, and more precisely when it tries to read
>> the store content.
>> Now, I don't know if it's the right place to face the problem, of if I
>> should open a ticket somewhere else, or if it's an already known and solved
>> bug, or if eventually it's some kind of problem related to a wrong
>> configuration in my app. Before losing me in all this wondering, can you
>> suggest me what to do? Could i try directly to change the java code in the
>> class PushHandlerActivity? Should it have effect, also eventually to make a
>> test locally?
>>
>>
> So 1) I think we have this bug known already (https://issues.jboss.org/
> browse/AGCORDOVA-167), sorry about that.
>
> 2) If you are feeling brave you can add the null/initialization check from
> here :
>
>    https://github.com/aerogear/aerogear-cordova-push/blob/
> b313fcfb20708089f2e0bcb871e396f67ee2b1a5/src/android/org/
> jboss/aerogear/cordova/push/NotificationMessageHandler.java#L43
>
> to here :
>
>   https://github.com/aerogear/aerogear-cordova-push/blob/
> b313fcfb20708089f2e0bcb871e396f67ee2b1a5/src/android/org/
> jboss/aerogear/cordova/push/PushHandlerActivity.java#L60
>
> rebuild the cordova library, test it, and send a pull request if it fixes
> your problem.
>
>
>> Here some information about my test conditions which could be useful.
>>
>> OS: Android 6.0.1
>> Device: Samsung S6
>> Aerogear Plugin Version: 3.1.0
>>
>> We're talking about a cross platform application developed with Ionic 1
>> and Angular 1.
>> I did not try to verify if the problem is happening also on a iOS device,
>> but i'm gonna do it immediately after writing this reply.
>> Do you think some other info could be useful?
>>
>> Thanks anyway, Federico.
>>
>>
>>
>>
>> 2017-04-19 13:37 GMT+02:00 Summers Pittman <supittma at redhat.com>:
>>
>>> The easiest tool to use is logcat with the Android emulator.  Logcat is
>>> part of the Android SDK which you installed while you were setting up your
>>> development environment (it may have been installed by another tool but it
>>> is there).
>>>
>>> All you need to do is, from the command line, run logcat.  Then run your
>>> application and wait for it to crash, and you will find the stack trace
>>> (and a bunch of other stuff), in the log.  It is possible to filter the
>>> logcat output based on the package name of the application generating logs,
>>> but one thing at a time.
>>>
>>> Summers
>>>
>>> On Wed, Apr 19, 2017 at 4:11 AM, Federico Cerminara <
>>> fedecentrico at gmail.com> wrote:
>>>
>>>> Still not able to introduce a tool to produce a stacktrace. I know it
>>>> would be helpful (if you have suggestions about which tool/plugin/approach
>>>> to use...) but now i am still not able to do it. I’m a beginner in
>>>> cross platform app development, as i said before :(
>>>>
>>>> 2017-04-18 17:23 GMT+02:00 Summers Pittman <supittma at redhat.com>:
>>>>
>>>>>
>>>>>
>>>>> On Tue, Apr 18, 2017 at 10:55 AM, Federico Cerminara <
>>>>> fedecentrico at gmail.com> wrote:
>>>>>
>>>>>> Hi Summers,
>>>>>> thanks for your immediate reply. The OS on the device i am testing
>>>>>> now is Android 6.0.1, but I don't know if it's an useful information cause
>>>>>> I'm using Ionic 1 and Angular 1 to develop a Cross Platform App.
>>>>>>
>>>>>> The code is not publicly available but I can share some code pieces
>>>>>> if you suggest me which pieces of code could help us for this analysis.
>>>>>>
>>>>>> It's not ax example app, I just took inspiration from the snippet of
>>>>>> code included in Android aerogear variant and used them to complete my
>>>>>> app.js code.
>>>>>>
>>>>>> How could you help me?
>>>>>>
>>>>>
>>>>> Would you be able to include your stack trace from logcat when the
>>>>> application crashes?
>>>>>
>>>>> I'm not as familiar with Cordova as I should be, but I should be able
>>>>> to make heads or tails of it.
>>>>>
>>>>>
>>>>>> Thanks anyway, Federico.
>>>>>>
>>>>>>
>>>>>> 2017-04-18 16:33 GMT+02:00 Summers Pittman <supittma at redhat.com>:
>>>>>>
>>>>>>> Frederico,
>>>>>>>
>>>>>>> Hi, sorry you are having trouble with UPS.  If you could help us out
>>>>>>> by answering a couple of questions that would be great.
>>>>>>>
>>>>>>> 1) Which OS is your applicatoin having trouble on and are you using
>>>>>>> Cordova or native libraries?
>>>>>>>
>>>>>>> 2) Is your code publicly available somewhere for us to look at?
>>>>>>>
>>>>>>> 3) Are you using the example app or is this your own implementation?
>>>>>>>
>>>>>>> I know from experience that with Android one of the common problems
>>>>>>> is that if the application has been killed by the OS then the Push
>>>>>>> libraries have to be reinitialized before you can send metrics to the
>>>>>>> server.  If you are initializing your push libraries in an Activity class
>>>>>>> instead of the Application class this may be something to double check.  Of
>>>>>>> course if this is iOS or Cordova then everything I just said is nonsense :)
>>>>>>>
>>>>>>> Summers
>>>>>>>
>>>>>>> On Tue, Apr 18, 2017 at 10:18 AM, Federico Cerminara <
>>>>>>> fedecentrico at gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> my name is Federico Cerminara, 35 years old, engineer and web
>>>>>>>> developer in Rome.
>>>>>>>> I’m a beginner in cross platform app development and I’ve started
>>>>>>>> using aerogear cordova push plugin to enable reception of push
>>>>>>>> notification.
>>>>>>>>
>>>>>>>> I’ve developed my first app. I’m able to receive correctly push
>>>>>>>> notification, both sending them directly by aerogear admin panel after
>>>>>>>> choosing a variant and and sending them from the application backend
>>>>>>>> following a custom logic. If I have my app closed or already open, clicking
>>>>>>>> on push notification seems to behave correctly, bringing user to
>>>>>>>> application first page. Instead, if I try to close all my applications
>>>>>>>> after receiving one or more push notification (image notification frequency
>>>>>>>> is quite low) and then I try to click on my waiting push, application
>>>>>>>> crashes showing a message that sound quite like this “The program
>>>>>>>> <app_name> has been interrupted”
>>>>>>>>
>>>>>>>> Can you tell me a way to solve this problem?
>>>>>>>> Thanks anyway, Federico.
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Aerogear-users mailing list
>>>>>>>> Aerogear-users at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-users
>>>>>>>>
>>>>>>>>
>>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-users/attachments/20170420/c9a3a108/attachment.html 


More information about the Aerogear-users mailing list