Я пытаюсь вызвать разрешение, как только приложение установлено, но вместо этого я сначала должен войти в систему. Как только я вхожу в свое приложение, мое приложение вылетает, и меня спрашивают разрешения. Затем я принимаю разрешение и могу войти в приложение. Я хочу знать, почему мое приложение продолжает давать сбой, прежде чем я принимаю разрешения, и что мне делать, чтобы это исправить. Вот где я вызываю разрешения:
public void callPermissions(){
String[] permissions = {Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION};
Permissions.check(this/*context*/, permissions, null/*rationale*/, null/*options*/, new PermissionHandler() {
@Override
public void onGranted() {
// do your task.
Log.d("permision Status", "permission granted");
}
@Override
public void onDenied(Context context, ArrayList<String> deniedPermissions) {
super.onDenied(context, deniedPermissions);
callPermissions();
}
});
}
public void callPermissions2(){
String[] permissions = {Manifest.permission.SEND_SMS, Manifest.permission.SYSTEM_ALERT_WINDOW};
Permissions.check(this/*context*/, permissions, null/*rationale*/, null/*options*/, new PermissionHandler() {
@Override
public void onGranted() {
// do your task.
Log.d("permision Status", "permission granted");
}
@Override
public void onDenied(Context context, ArrayList<String> deniedPermissions) {
super.onDenied(context, deniedPermissions);
callPermissions();
}
});
}
//asks user for permissions for overlay
public void checkPermission1() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, ACTION_MANAGE_OVERLAY_PERMISSION_REQUEST_CODE);
}
}
}
Stacktrace:
2020-05-08 18:36:42.470 19643-19643/com.example.carcrashdetection E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.carcrashdetection, PID: 19643
java.lang.NullPointerException: Attempt to read from field 'android.view.View androidx.recyclerview.widget.RecyclerView$ViewHolder.itemView' on a null object reference
at com.example.carcrashdetection.Home$5$1.run(Home.java:369)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Я вызываю оба метода разрешения в oncreate. Любые предложения о том, почему это происходит. Должен ли я вызывать разрешения в действии входа в систему?