gpt4 book ai didi

java - NullPointerException 与 checkSelfPermission - 我在正确的地方寻找吗?

转载 作者:行者123 更新时间:2023-12-01 16:48:26 26 4
gpt4 key购买 nike

我已经发布了我的 Android 应用程序,但我看到用户出现很多以下错误。我无法每次在模拟器上自己重现该问题,因此我很难自己调试它。

当用户在后台运行一段时间后打开我的应用程序时,似乎会发生这种情况。应用程序将在首次运行时崩溃。当用户再次打开应用程序时,一切都很好。我觉得这与我的许可或上下文为空有关。我没有太多阅读 nullpointerexeptions 的经验,所以希望得到一些帮助!

错误:

java.lang.NullPointerException: 
at android.support.v4.content.ContextCompat.checkSelfPermission (ContextCompat.java:425)
at me.XXXXXXX.XXXXXXXX.DistanceFragment.getDeviceLocation (DistanceFragment.java:463)
at me.XXXXXXX.XXXXXXXX.DistanceFragment.onConnected (DistanceFragment.java:239)
at com.google.android.gms.common.internal.zzm.zzq (Unknown Source)
at com.google.android.gms.internal.zzaal.zzo (Unknown Source)
at com.google.android.gms.internal.zzaaj.zzvE (Unknown Source)
at com.google.android.gms.internal.zzaaj.onConnected (Unknown Source)
at com.google.android.gms.internal.zzaan.onConnected (Unknown Source)
at com.google.android.gms.internal.zzzy.onConnected (Unknown Source)
at com.google.android.gms.common.internal.zzl$1.onConnected (Unknown Source)
at com.google.android.gms.common.internal.zzf$zzj.zzwZ (Unknown Source)
at com.google.android.gms.common.internal.zzf$zza.zzc (Unknown Source)
at com.google.android.gms.common.internal.zzf$zza.zzu (Unknown Source)
at com.google.android.gms.common.internal.zzf$zze.zzxa (Unknown Source)
at com.google.android.gms.common.internal.zzf$zzd.handleMessage (Unknown Source)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:154)
at android.app.ActivityThread.main (ActivityThread.java:6682)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1410)

我说得对吗...

DistanceFragment.onConnected (DistanceFragment.java:239) is called first
---> then calls DistanceFragment.getDeviceLocation (DistanceFragment.java:463)
------> checkSelfPermission (ContextCompat.java:425)*

检查权限有 2 个参数:

上下文 上下文权限字符串:

其中一个为空?

这些行的代码如下:

///第 239 行

@Override
public void onConnected(Bundle connectionHint) {

getDeviceLocation(); /// Line 239

///第463行

   if (ContextCompat.checkSelfPermission(getContext(),
android.Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
mLocationPermissionGranted = true;
} else {
ActivityCompat.requestPermissions(getActivity(),
new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);
}

感谢您的帮助。

如果有人有关于如何确保其不为空的解决方案,我们将不胜感激。

最佳答案

Am I right in saying that... One of these is null?

是的。

If anyone had a solution on how to ensure this is not null, it would be greatly appreciated.

修复你的 fragment 。仅当 fragment 附加到 Activity 时才向 Play 服务注册。在其他时间从 Play 服务取消注册,例如在分离 fragment 时。现在,当 fragment 未附加到 Activity 时,您的 onConnected() 回调会被调用,因此 getActivity() 返回 null.

关于java - NullPointerException 与 checkSelfPermission - 我在正确的地方寻找吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45349261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com