![](/img/trans.png)
[英]Retrieving a fingerprint Blob is Crashing the app at run time, SQLITE for Android
[英]Android app is crashing each time I run it
我开始进行BLE113和Android编程。 我遵循了该网站的指导原则:
当我按照教程学习时,一切工作都很好。 然后我开始玩代码。 我没有在Android终端上读取距离和UUID,而是决定在应用程序上读取它。 每次我运行该应用程序时都会将其关闭,并显示以下消息:“不幸的是, 应用程序名称已停止”。 我真的不明白为什么。 这是我的应用崩溃时的代码:
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, org.altbeacon.beacon.Region region) {
for (Beacon oneBeacon: beacons) {
// Log.d(Tag, "distance:"+oneBeacon.getDistance() + "id:" +oneBeacon.getId1()+ "/" + oneBeacon.getId2()+"/" + oneBeacon.getId3());
TextView distance = (TextView) findViewById(R.id.distanceText);
distance.setText(""+oneBeacon.getDistance());
}
}
这是它不会崩溃的时间:
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, org.altbeacon.beacon.Region region) {
for (Beacon oneBeacon: beacons) {
Log.d(Tag, "distance:"+oneBeacon.getDistance() + "id:" +oneBeacon.getId1()+ "/" + oneBeacon.getId2()+"/" + oneBeacon.getId3());
//TextView distance = (TextView) findViewById(R.id.distanceText);
//distance.setText(""+oneBeacon.getDistance());
}
}
完整的代码在这里发布:
https://github.com/Boniface316/androidProjects#androidprojects
我4周前开始进行Android编程,现在仍在学习,我真的不知道为什么收到此消息。 任何建议或反馈,我们将不胜感激。
您应该始终使用调试工具在Eclipse或Android Studio中获取错误。 那是找到问题的最好方法
据我所知,您应该删除此方法的distance
初始化。
声明为字段:
private TextView distance;
在onCreate()
初始化它
distance = (TextView) findViewById(R.id.distanceText);
然后
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, org.altbeacon.beacon.Region region) {
for (Beacon oneBeacon: beacons) {
// Log.d(Tag, "distance:"+oneBeacon.getDistance() + "id:" +oneBeacon.getId1()+ "/" + oneBeacon.getId2()+"/" + oneBeacon.getId3());
distance.setText(distance.getText() + " | "+oneBeacon.getDistance());
}
}
还将循环代码更改为:
distance.setText(distance.getText() + " | "+oneBeacon.getDistance());
否则你会覆盖它
我不知道信标的事...但是我猜,
从另一个线程(不是主UI线程)调用didRangeBeaconsInRegion方法。
在android中,与UI相关的工作需要在主线程中完成,而与网络相关的工作则必须在单独的线程中完成。
我猜这是信标事物在另一个线程中使用网络连接,并在其自己的网络线程中调用此方法。
尝试使用处理程序将消息发送到主线程以进行UI更新。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.