GVKun编程网logo

使用android.content.Context.checkPermission检查权限时出现空指针异常(android空指针异常怎么解决)

21

如果您对使用android.content.Context.checkPermission检查权限时出现空指针异常感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于使用andr

如果您对使用android.content.Context.checkPermission检查权限时出现空指针异常感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于使用android.content.Context.checkPermission检查权限时出现空指针异常的详细内容,我们还将为您解答android空指针异常怎么解决的相关问题,并且为您提供关于Android setContentView 的时候包空指针异常、android – WARN / ActivityManager(5038):权限被拒绝:checkComponentPermission、android – 指令’monitor-enter v1’时出现空指针异常、Android-Mockito无法模拟此类:类android.content.Context的有价值信息。

本文目录一览:

使用android.content.Context.checkPermission检查权限时出现空指针异常(android空指针异常怎么解决)

使用android.content.Context.checkPermission检查权限时出现空指针异常(android空指针异常怎么解决)

在查询Android日历中的事件之前,我需要检查权限。为此,Android studio警告我在查询之前需要先进行检查。自动生成的代码如下:

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) {        System.out.println("NO ACCESS TO CALENDAR!! Abort mission, abort mission!!");    }

尝试运行它时,出现以下错误:

尝试
在空对象引用上调用虚拟方法’int
android.content.Context.checkPermission(java.lang.String,int,int)’

因此很明显,此时某些东西为空,我试图以不同的方式获取应用程序的上下文,但这仍然是相同的错误。我尝试过的另一件事是这段代码,应该可以处理低于Android
6的目标:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED) {        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CALENDAR},                MY_PERMISSIONS_REQUEST_READ_CONTACTS);    }

仍然出现相同的错误,有人可以帮助我吗?

答案1

小编典典

它是一个单独的类,控制器:公共类DummyData扩展了Activity {....}

那是行不通的。

*Activity 除非是一项真正的活动,否则请 *不要 扩展,这是您将在清单中注册的活动。

永远不要Activity通过构造函数创建一个实例(例如,newDummyData()您在代码中的某处)。使用startActivity()显示一个活动,您在清单已注册。

就目前而言,虽然您的DummyData类可以从编译的角度工作,但它在运行时将无法工作。一个Activity需要由框架被实例化,而不是与你的情况DummyData

实物 传递ContextcheckSelfPermission(),然后将 实物
传递ActivityrequestPermissions()。在这种情况下,“真实”是指“从框架交给您”。

Android setContentView 的时候包空指针异常

Android setContentView 的时候包空指针异常

Android setContentView 的时候包空指针异常。

代码:


异常:

04-22 04:08:25.434 26417-26417/com.jeanselam.activities E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: com.jeanselam.activities, PID: 26417
                                                                          java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jeanselam.activities/com.jeanselam.activities.DisplayNewsActivity}: android.view.InflateException: Binary XML file line #26: Error inflating class null
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
                                                                              at android.app.ActivityThread.access$800(ActivityThread.java:135)
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                              at android.os.Looper.loop(Looper.java:136)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5001)
                                                                              at java.lang.reflect.Method.invokeNative(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:515)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                                              at dalvik.system.NativeStart.main(Native Method)
                                                                           Caused by: android.view.InflateException: Binary XML file line #26: Error inflating class null
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
                                                                              at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
                                                                              at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
                                                                              at com.jeanselam.activities.DisplayNewsActivity.onCreate(DisplayNewsActivity.java:33)
                                                                              at android.app.Activity.performCreate(Activity.java:5231)
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
                                                                              at android.app.ActivityThread.access$800(ActivityThread.java:135)
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                              at android.os.Looper.loop(Looper.java:136)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5001)
                                                                              at java.lang.reflect.Method.invokeNative(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:515)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                                              at dalvik.system.NativeStart.main(Native Method)
                                                                           Caused by: java.lang.NullPointerException
                                                                              at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:90)
                                                                              at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:938)
                                                                              at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:992)
                                                                              at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
                                                                              at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:684)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
                                                                              at android.view.LayoutInflater.rInflate(LayoutInflater.java:758)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
                                                                              at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
                                                                              at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
                                                                              at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
                                                                              at com.jeanselam.activities.DisplayNewsActivity.onCreate(DisplayNewsActivity.java:33)
                                                                              at android.app.Activity.performCreate(Activity.java:5231)
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
                                                                              at android.app.ActivityThread.access$800(ActivityThread.java:135)
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                              at android.os.Looper.loop(Looper.java:136)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5001)
                                                                              at java.lang.reflect.Method.invokeNative(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:515)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
                                                                              at dalvik.system.NativeStart.main(Native Method)

android – WARN / ActivityManager(5038):权限被拒绝:checkComponentPermission

android – WARN / ActivityManager(5038):权限被拒绝:checkComponentPermission

从一个应用程序我(广播)发送意图到另一个的广播接收器.我收到错误:

WARN/ActivityManager(5038): Permission denied: checkComponentPermission

解决方法:

您需要在清单文件下添加权限添加这些权限

<receiver android:name=".YourbroadCastReceiverName" android:exported="true"></receiver>

android – 指令’monitor-enter v1’时出现空指针异常

android – 指令’monitor-enter v1’时出现空指针异常

我现在每次都会收到这个错误
inside public void onResponse(呼叫,响应响应){:
mContext.runOnUiThread(new Runnable() {
            @Override
            public void run() {

    LocalDBUtility local=LocalDBUtility.getInstance();
//code
}

在我的单例类LocalDBUtility中

static LocalDBUtility localDBUtility;
    private LocalDBUtility(){
    }

    public static LocalDBUtility getInstance(){

        if(localDBUtility==null){
            synchronized (localDBUtility) {
                localDBUtility = new LocalDBUtility();
            }
            return localDBUtility;

        }else {
            return localDBUtility;
        }
    }

我想知道是什么导致了NPE?

堆栈跟踪:

java.lang.NullPointerException: Null pointer exception during instruction 'monitor-enter v1'
                                                                   at com.utilities.LocalDBUtility.getInstance(LocalDBUtility.java:34)
                                                                   at com.MainActivity$4.run(MainActivity.java:386)
                                                                   at android.app.Activity.runOnUiThread(Activity.java:5506)
at 

    retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
                                                                   at android.os.Handler.handleCallback(Handler.java:815)
                                                                   at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                   at android.os.Looper.loop(Looper.java:194)
                                                                   at android.app.ActivityThread.main(ActivityThread.java:5763)
                                                                   at java.lang.reflect.Method.invoke(Native Method)
                                                                   at java.lang.reflect.Method.invoke(Method.java:372)
                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755

解决方法

if(localDBUtility==null){
        synchronized (localDBUtility) {

如果localDBUtility为null,则无法对其进行同步调用.您只能在实例化对象上进行同步.

Android-Mockito无法模拟此类:类android.content.Context

Android-Mockito无法模拟此类:类android.content.Context

我们有2年的gradle版本3.3.1。因此,当我尝试将gradle版本直接提高到最新的4.x版本时,在运行单元测试时出现了一些问题。.so也不得不提高了模仿,最终导致了这个问题。

变得凌乱,不知道如何解决。

只是改变了方法-开始逐步提高gradle版本,而不是直接从这样的旧版本跳到最新版本。现在一切顺利,一切顺利。

因此,如果您处在相同的情况下,请一一提高版本,而不要跳太久。

今天关于使用android.content.Context.checkPermission检查权限时出现空指针异常android空指针异常怎么解决的讲解已经结束,谢谢您的阅读,如果想了解更多关于Android setContentView 的时候包空指针异常、android – WARN / ActivityManager(5038):权限被拒绝:checkComponentPermission、android – 指令’monitor-enter v1’时出现空指针异常、Android-Mockito无法模拟此类:类android.content.Context的相关知识,请在本站搜索。

本文标签: