0

当我在 Intellij IDE( Android Studio) 中使用这些方法时,我得到了这些信息:方法调用mContext.getPackageManager().getApplicationEnabledSetting(pkgName)可能产生java.lang.NullPointerException更少...( Ctrl+F1) 此检查报告指定检查范围内始终为真或假的那些条件,并指出根据代码的数据流分析,可能会抛出 RuntimeException。此检查还报告 Nullable/NotNull 合同违规。可以配置支持合约的注解(默认使用来自 annotations.jar 的 @Nullable/@NotNull 注解)

但只有 IllegalArgumentException 在dev api中描述

问题是:什么条件下我会得到 NULLPOINTEXCEPTION?

我有一个简单的测试示例应用程序,只需在 create() 上使用这些方法

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         int testint= this.getPackageManager().getApplicationEnabledSetting("com.android.mms");//NullPointException
    }

不幸的 NullPointException 发生了。包名是Message App,不是google原来的app,修改过。谢谢

4

1 回答 1

0

mContext也许null,因此mContext.getPackageManager()可能会抛出一个 NPE。

于 2013-06-27T05:45:12.117 回答