Android SQLiteDatabase查询可能会产生NPE

时间:2013-07-29 04:06:12

标签: android sqlite android-sqlite android-studio

试图了解原因:

    db = databaseHandler.getReadableDatabase();

    String[] columns = {ID, NAME, DIFFICULTY};
    Cursor cursor = db.query(TABLE_NAME, columns, null, null, null, null, DIFFICULTY);

上述代码段中的大写变量显然是静态韵母。 Android工作室告诉我

“此检查报告指定检查范围中始终为true或false的条件,并根据代码的数据流分析指出可能抛出RuntimeException的位置。此检查还报告Nullable / NotNull合同违规。可以配置支持合同的注释(默认使用@nullable / @NotNull注释来自annotations.jar)“

这对我来说是胡言乱语。有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

该工具会尝试帮助您找到可能发生错误的位置。 在这种特殊情况下,它会抱怨您使用null的每个地方以及无法证明此用法被允许的地方。

但是,documentation表明这些参数确实允许null值,因此该工具是错误的。 此外,SQLiteDatabase的{​​{1}}方法是Android API的一部分,因此没有任何借口。请将此视为检查员中的错误。