当我在Intellij IDE(Android Studio
)中使用这些方法时,我得到了以下信息:
方法调用mContext.getPackageManager().getApplicationEnabledSetting(pkgName)
可能会减少java.lang.NullPointerException
...(Ctrl+F1
)
此检查报告指定检查范围中始终为true或false的条件,并根据代码的数据流分析指出可能抛出RuntimeException的位置。此检查还报告Nullable / NotNull合同违规。可以配置支持合同的注释(默认情况下,@ Nullable / @NotNull将使用annotations.jar中的注释)
但只有dev api
中描述的IllegalArgumentException问题是:我将获得NULLPOINTEXCEPTION的条件是什么?
我有一个简单的测试示例应用,只需在create()
上使用thes方法 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int testint= this.getPackageManager().getApplicationEnabledSetting("com.android.mms");//NullPointException
}
发生了不幸的NullPointException。 packageName是Message App,而不是原始的 谷歌的应用程序,修改。 感谢
答案 0 :(得分:0)
mContext
可能null
因此mContext.getPackageManager()
可能会投放NPE。