ParkSangGwon / TedPermission

Easy check permission library for Android Marshmallow
1.74k stars 238 forks source link

Attempt to invoke interface method 'void com.gun0912.tedpermission.PermissionListener.onPermissionGranted()' on a null object reference #59

Closed paulwong-madmadgroup closed 6 years ago

paulwong-madmadgroup commented 7 years ago

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gun0912.tedpermission.TedPermissionActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void com.gun0912.tedpermission.PermissionListener.onPermissionGranted()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2793) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4720) at android.app.ActivityThread.-wrap20(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1573) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:6523) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831) Caused by java.lang.NullPointerException: Attempt to invoke interface method 'void com.gun0912.tedpermission.PermissionListener.onPermissionGranted()' on a null object reference at com.gun0912.tedpermission.TedPermissionActivity.permissionResult(TedPermissionActivity.java:136) at com.gun0912.tedpermission.TedPermissionActivity.checkPermissions(TedPermissionActivity.java:202) at com.gun0912.tedpermission.TedPermissionActivity.onCreate(TedPermissionActivity.java:76) at android.app.Activity.performCreate(Activity.java:6910) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2746) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2864) at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4720) at android.app.ActivityThread.-wrap20(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1573) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:6523) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)

ParkSangGwon commented 6 years ago

Can you show me your using code?

JSpiner commented 6 years ago

@paulwong-madmadgroup @ParkSangGwon same here.... I solved this issue and send pull request. (#60) plz check it.

insectkorea commented 6 years ago

Same issue, here.

octokim commented 6 years ago

I get the same issue when I go to the settings from dialog with denied message, switch off permissions that were previously switched on and go back to my app. Fix this, please.

JSpiner commented 6 years ago

@insectkorea @octokim hey friends, did you check #60? I think it can fix issue. 👍

octokim commented 6 years ago

@JSpiner can you explain, where your runtime exceptions should be handled?

JSpiner commented 6 years ago

@octokim First, you must prevent it from calling twice. Using loading dialog, disable view, add click flag..... etc.

And check like below.

try{
    TedPermission.with(context)
                    .setPermissionListener(listener)
                    .setPermissions(permissionString)
                    .check();
}
catch(RuntimException error){
    Logger.d("it called twice, somethings wrong...");
}

In fact, it is not fixed. Because the listener is a static field. In other words, only one can be assigned. If you want to correct errors instead of exception handling, you need to fix a lot of things. 😂

octokim commented 6 years ago

@JSpiner seems good ^_^

ParkSangGwon commented 6 years ago

This error solved at v2.1.0 Please update library version.