Mobile-SDK-Android icon indicating copy to clipboard operation
Mobile-SDK-Android copied to clipboard

Crash due to UserAccountInfo.isValid

Open jeryini opened this issue 3 years ago • 10 comments

Hello!

In my production app I'm currently seeing the following crash that happens sporadically for some users:

Fatal Exception: java.lang.NullPointerException
Attempt to invoke virtual method 'boolean dji.internal.useraccount.UserAccountInfo.isValid()' on a null object reference
dji.sdk.realname.uid.uio.nbb (Unknown Source:17)
dji.sdk.realname.uid.uio.ghu (Unknown Source:1)
dji.sdk.realname.uid.uio.hgf (Unknown Source:1)
dji.sdk.realname.uid.uio.gfd (Unknown Source:90)
dji.sdk.realname.AppActivationManager.init (Unknown Source:4)
dji.sdk.sdkmanager.DJISDKManager.initParams (Unknown Source:115)
dji.sdk.sdkmanager.DJISDKManager.initSDKManager (Unknown Source:12)
dji.sdk.sdkmanager.DJISDKManager.registerApp (Unknown Source:39)
dji.sdk.sdkmanager.DJISDKManager.access$800
dji.sdk.sdkmanager.DJISDKManager$6$1.onDownloadSuccess (Unknown Source:8)
dji.internal.ghu.ghu.fdd (Unknown Source:19)
dji.sdk.sdkmanager.DJISDKManager$6.run (Unknown Source:37)
dji.sdksharedlib.gfd.koy.run (Unknown Source:5)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
java.lang.Thread.run (Thread.java:923)

Not sure where this gets triggered. I'm using Mobile-UXSDK-Beta-Android (https://github.com/dji-sdk/Mobile-UXSDK-Beta-Android), which uses UserAccountManager and could probably be the reason behind this exception. Though the issue is, that internal sdk call triggers null pointer exception and should therefore probably be fixed internally. Also it might be related to this issue FYI https://github.com/dji-sdk/Mobile-SDK-Android/issues/410.

jeryini avatar Oct 29 '21 09:10 jeryini

Agent comment from DJI SDK in Zendesk ticket #55425:

尊敬的开发者,感谢您联系DJI 大疆创新 由于github不是我们主要的咨询渠道,您的问题可能跟进不及时。我们建议您通过填写表单( https://djisdksupport.zendesk.com/hc/zh-cn/requests/new )向我们反馈问题。或者您也可以在论坛发帖,与其它开发者交流。论坛链接:https://djisdksupport.zendesk.com/hc/zh-cn/community/topics

Dear developer, thank you for contacting DJI. Since github is not our main consultation channel, your questions may not be followed up in time. We recommend that you fill in the form (https://djisdksupport.zendesk.com/hc/en-us/requests/new) to report problems to us. Or you can post in the forum to communicate with other developers. Forum link: https://djisdksupport.zendesk.com/hc/zh-cn/community/topics

°°°

dji-dev avatar Oct 29 '21 09:10 dji-dev

Fix has merged in 4.16 branch.

DJI-William avatar Nov 01 '21 07:11 DJI-William

Hello @DJI-William !

Still getting these crashes even though using 4.16v.

jeryini avatar Jan 27 '22 07:01 jeryini

@jeryini Can you post a crash log for me please?

DJI-William avatar Jan 27 '22 08:01 DJI-William

Hello @DJI-William !

Sure thing, here it is:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean dji.internal.useraccount.UserAccountInfo.isValid()' on a null object reference
       at dji.sdk.realname.uid.nhf.nbb()
       at dji.sdk.realname.uid.nhf.nhf()
       at dji.sdk.realname.uid.nhf.hgf()
       at dji.sdk.realname.uid.nhf.uio()
       at dji.sdk.realname.AppActivationManager.init()
       at dji.sdk.sdkmanager.DJISDKManager.initParams()
       at dji.sdk.sdkmanager.DJISDKManager.initSDKManager()
       at dji.sdk.sdkmanager.DJISDKManager.registerApp()
       at dji.sdk.sdkmanager.DJISDKManager.access$1000()
       at dji.sdk.sdkmanager.DJISDKManager$8$1.onDownloadSuccess()
       at dji.internal.jhg.fdd.fdd()
       at dji.sdk.sdkmanager.DJISDKManager$8.run()
       at dji.sdksharedlib.dgh.gfd$fdd.run()
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run(Thread.java:762)

Also the user device that caused this crash had quite an old Android version 7.0. Might this be the reason behind it?

jeryini avatar Feb 02 '22 06:02 jeryini

There is a similar crash happening also on the latest 4.16 SDK version:

Fatal Exception: java.lang.NullPointerException: Attempt to read from field 'java.lang.String dji.internal.useraccount.UserAccountInfo.token' on a null object reference
       at dji.internal.useraccount.gfd$ghu.fdd(:6)
       at dji.internal.useraccount.gfd$uio.onSuccess(:155)
       at dji.internal.useraccount.gfd$uio.onSuccess(:2)
       at dji.thirdparty.afinal.http.HttpHandler.onProgressUpdate(:30)
       at dji.thirdparty.afinal.core.AsyncTask$InternalHandler.handleMessage(:17)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:226)
       at android.os.Looper.loop(Looper.java:313)
       at android.app.ActivityThread.main(ActivityThread.java:8582)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:563)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1133)

jeryini avatar Feb 02 '22 07:02 jeryini

Will assign to a developer to look at it soon.

DJI-William avatar Feb 07 '22 10:02 DJI-William

@jeryini I think the last fix does not take effects, may I ask how to reproduce it, then we will test the new fix.

DJI-William avatar Feb 24 '22 03:02 DJI-William

@DJI-William, not sure because these crashes happen sporadically for some users.

jeryini avatar Feb 27 '22 09:02 jeryini

@jeryini Thank you for your support, the previous fix didn't make the effect, we will fix in 4.16.1 again. I am sorry for your inconvenience.

DJI-William avatar Feb 28 '22 06:02 DJI-William