Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash at TedPermissionActivity.java line 124 #114

Open
madlymad opened this issue Sep 12, 2020 · 1 comment
Open

Crash at TedPermissionActivity.java line 124 #114

madlymad opened this issue Sep 12, 2020 · 1 comment

Comments

@madlymad
Copy link

Hi,

In one of my apps I got the following crash on crashlytics reporting.
It is one crash but both stacktraces where available on firebase:

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.madlymad.uptime/com.gun0912.tedpermission.TedPermissionActivity}: java.lang.NullPointerException: Attempt to get length of null array
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
       at android.app.ActivityThread.-wrap11(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6494)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by java.lang.NullPointerException: Attempt to get length of null array
       at com.gun0912.tedpermission.TedPermissionActivity.needWindowPermission(TedPermissionActivity.java:124)
       at com.gun0912.tedpermission.TedPermissionActivity.onCreate(TedPermissionActivity.java:77)
       at android.app.Activity.performCreate(Activity.java:7009)
       at android.app.Activity.performCreate(Activity.java:7000)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
       at android.app.ActivityThread.-wrap11(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6494)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

The version of the library that I am using is 2.2.2 but checking the crashing line it looks to me that the crash is still valid in latest master.

Sadly I do not have much information how the user ended up with the crash but it seems that there are cases that the code is triggered and the "permissions" array is not initialized.

The library usage on my code is done here

Device info crash:
Brand: LGE
Model: Nexus 5X
Version: 8.1.0

I remain at your disposal for any further information.

@madlymad madlymad mentioned this issue Sep 13, 2020
@salami
Copy link

salami commented Jan 2, 2025

A customer of ours encountered the same crash in production recently. From crashlytics:

Fatal Exception: java.lang.RuntimeException
Unable to start activity ComponentInfo{com.telephonescience.nomorobomax/com.gun0912.tedpermission.TedPermissionActivity}: java.lang.NullPointerException: Attempt to get length of null array
Caused by java.lang.NullPointerException
Attempt to get length of null array

com.gun0912.tedpermission.TedPermissionActivity.needWindowPermission (TedPermissionActivity.java:124)
com.gun0912.tedpermission.TedPermissionActivity.onCreate (TedPermissionActivity.java:77)
android.app.Activity.performCreate (Activity.java:8305)
android.app.Activity.performCreate (Activity.java:8284)
android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1417)
android.app.ActivityThread.performLaunchActivity (ActivityThread.java:3626)
android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3782)
android.app.servertransaction.LaunchActivityItem.execute (LaunchActivityItem.java:101)
android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:2307)
android.os.Handler.dispatchMessage (Handler.java:106)
android.os.Looper.loopOnce (Looper.java:201)
android.os.Looper.loop (Looper.java:288)
android.app.ActivityThread.main (ActivityThread.java:7872)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:936)

It does seem to be quite rare.

If you look at the code in TedPermissionActivity.java, when permissions is initialized, both getStringArray and getStringArrayExtra can return null. But I'm not sure how it would get in this state... I imagine it's important for permissions to both be not null and contain at least one item.

More details from the crash
Android 13
Nexus 5X

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants