我有一个Android应用程序,在我的dispatchTouchEvent实现中有一个NullPointerException,它在一些设备上崩溃。我从来没有在我的任何设备上看到过崩溃,但它每天在现场发生很多次,因为我在自己的分析和Android开发者控制台中都看到了崩溃。问题是,我很难弄清楚这次崩溃可能是如何发生的。以下是相关代码(我在代码中标记了通过“CRASH Here”引发NullPointerException的位置-
if (…)
{
...
}
else if (event != null)
{
if (event.getAction() == MotionEvent.ACTION_DOWN) {
motionStartX = event.getX();
motionStartY = event.getY();
}
else if (event.getAction() == MotionEvent.ACTION_UP)
{
...
if (...)
{
...
}
else if (event != null && event.getPointerCount() > 0 &&
/*** CRASH HERE -> ***/(Math.abs(motionStartX - event.getX()) > 5 ||
Math.abs(motionStartY - event.getY()) > 5))
{
...
}
}
}
根据我的理解,引发NullPointerException的唯一方法是如果事件
是null
,但是,在它上面的一行,我添加了一些妄想检查事件
是否为null
,甚至事件是否有指针。尽管如此,我还是会崩溃。我觉得我错过了什么。有人对此有什么见解吗?
我认为问题是你没有处理异常。
1) 这两个(motionStartX、motionStartY)应在崩溃代码上方声明,并且必须初始化(设置),
2) 检查您是否正在处理错误的数据类型,例如,您没有将字符串用作整数。
3)使用try Catch语句处理异常,如果这是异常不是bug
4) 使用日志。d(“有趣的价值观”,“运动开始发送=”运动开始发送“,运动开始发送=”运动开始发送“,event.getX()=”事件。getX()”,event.getY()=”事件。getY());TpSpring值,如果有值,则没有空点,
else if (event.getAction() == MotionEvent.ACTION_UP)
{
try{
Log.d("values on function", "motionStartX = " + motionStartX " , motionStartY= " + motionStartY + " , event.getX() = " + event.getX() " , event.getY() = " + event.getY());
...
if (...){
...
}
else if (event != null && event.getPointerCount() > 0 &&
/*** CRASH HERE -> ***/(Math.abs(motionStartX - event.getX()) > 5 ||
Math.abs(motionStartY - event.getY()) > 5)){
...
}catch(Exception e){
//Handle exceptions here, if they are exceptions not bugs in your code
}
}
我有一个组件,我将一些数据放入变量中,以便在另一个函数中读取它。当我在构造函数中打印这个变量并在控制台上打印它时,我可以看到它,但是当我在另一个函数中执行同样的操作时,我没有定义它。我已经尝试将它声明为私有和公共,并得到相同的结果。 如何声明此变量以查看另一个方法中的变量? 这是我的组件: 编辑: 如果我把一个静态常数放在我的函数上,我可以得到数据: 但如果我这样做: 我得到了一个错误: 属性'm
如何查看已安装的Karaf功能的内部? 它还有其他功能吗? 它安装的是什么捆绑包和起始级别? 我说的是超文本传输协议的之类的特性。
https://leetcode.com/problems/find-all-numbers-dispapered-in-an-array/discuss/93007/simple-java-in-place-sort-solution 你能查一下上面的链接吗? 我看不懂密码 然后,第一个只是简单地使用我们可以检查是不是值。 第二个, 它最终也是一样的东西,只是为了证明索引值=index+1。 但
我们在MapStruct中使用不可变项,在将实体转换为dto时遇到问题。 mapper类 在出现错误的情况下,问题是完全相同的 我检查了mapstruct与不可变的测试,没有什么不同https://github.com/mapstruct/mapstruct/blob/master/integrationtest/src/test/resources/immutablesBuilderTest/m
或者在flutter中,我可以以某种方式覆盖所有RaisedButton类具有相同高度的样式--不要说字体/颜色?
问题内容: 背景 :我正在编写一个应该管理我的音乐文件的python程序。它将爬网目录,并将文件和它们的元数据(通过mutagen)(通过mutagen)放入JSON中,作为简单的“数据库”。我的目录搜索很好,但是当我尝试保存数据库或将其编码为JSON时,它会引发“ TypeError:{…}不可序列化JSON”(…是字典中的一些键和值,更多有关以下内容) 问题 :程序按照以下格式构建大型词典对象