NullPointerException 和 findViewById() [重复]

Posted

技术标签:

【中文标题】NullPointerException 和 findViewById() [重复]【英文标题】:NullPointerException and findViewById() [duplicate] 【发布时间】:2016-09-11 01:38:29 【问题描述】:

注意:这是针对 Stack Overflow 上常见问题的规范问题。

我的 android 应用程序崩溃了。我checked the stacktrace from the logcat 发现原因是在线的NullPointerException

myEditText.setText(myString);

有什么问题,我该如何解决?

【问题讨论】:

@4castle 这个问题更具体。当然,我应该找到一种方法在我的问题中包含指向该问题的链接。 【参考方案1】:

请提供有关您的代码的更多详细信息。我认为你没有正确初始化 myEditText

类似这样的:

EditText myEditText = findViewById(R.id.xxx);

【讨论】:

【参考方案2】:

你没有初始化 myEditText 对任何 EditText 对象的引用。

请确保初始化它并在正确的位置使用该语句。

【讨论】:

【参考方案3】:

记住一件事,当你在任何 findViewById 中得到空指针异常时,只有在 XML 和 java 文件中声明的 id 不匹配或从 java 端说你试图访问甚至没有在 XML 端声明的 Id 时才会发生.

我想说的另一点是您正在使用 setText() 方法并且您正在传递 String 对象现在请记住,如果它是一个空对象并且没有任何值,它也可能产生空指针。

【讨论】:

感谢您的回答。请注意,这不是在这种情况下出现 NPE 的唯一原因。 还有什么原因?你能告诉我吗 请在此处阅读其他答案。【参考方案4】:

错误信息表明myEditText 没有被正确初始化。首先,您需要确保您致电findViewById()。例如

myEditText = findViewById(R.id.text);

如果您已经这样做了,请仔细检查资源 ID 是否与您的活动或片段的 XML 布局文件中声明的资源 ID 匹配。

另外,您可能忘记在活动的onCreate() 方法中调用setContentView()

【讨论】:

另外,如果您在致电setContentView 之前尝试获取View 的参考资料 @jDawg 好一个。我会补充的。【参考方案5】:

使用 "" 然后附加你的字符串。它可能是你的 myString 返回 null。

myEditText.setText("" + myString);

【讨论】:

感谢您指出这一点。这实际上是我设计的示例中的一个错误。

以上是关于NullPointerException 和 findViewById() [重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有 Fragment 和 ViewPager 的 NullPointerException

喷json解析和NullPointerException

使用 Facebook SDK 和 ParseFacebookUtils 登录时出现 NullPointerException

JToggleButton 和意外的 nullPointerException

Oracle UCP 和 NullPointerException

Android:使用 viewModelscope 和 withContext 时不可能出现 NullPointerException