我有一个程序可以将USB数据记录到我创建的文件中,它工作正常。我正在尝试使用setText显示其中的一些数据,但setText正确执行一次,然后下次调用它时,我得到了一个未找到源的崩溃。
在此运行中,我将USB数据保存到我的文件中:
@Override
public void run() {
ByteBuffer buffer = ByteBuffer.allocate(64);
UsbRequest request = new UsbRequest();
request.initialize(mConnection, mEndpointIntr);
while (true) {
request.queue(buffer, 64);
if (mConnection.requestWait() == request) {
znum.setText("help");
savetofile("GOT data " + System.currentTimeMillis());
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
} else {
Log.e(TAG, "requestWait failed, exiting");
savetofile("10 requestWait failed, exiting");
break;
}
}
}
如果我rem掉上面的setText行,程序就会运行得很愉快,将数据保存到一个文件中。当我像上面那样运行代码时,程序崩溃了,我得到了一个未找到源代码的指示。
如果我在savetofile行上中断一段时间来启动程序,那么布局将使用tvZnum集进行更新,以获得良好的帮助。
然后,我逐步遍历代码并返回setText行。
一切都很好,直到我第二次执行setText,然后它崩溃了。
它似乎在android上。看法ViewRootImpl。checkThread()行4077,当它崩溃时。我试图在我的帖子中添加一张截屏图片,但我还没有足够的声誉点数。
本人声明:
TextView znum;
并在OnCreate中拥有这个:
znum = (TextView) findViewById(R.id.tvZnum);
tvZnum在发射器和R中表现良好。
我知道答案一定很简单,但很简单,我想不出来。
有什么想法吗?
谢谢,戴尔
编辑:这里是logCat(希腊语,我不知道如何在这里格式化):
I/dalvikvm(1529):线程ID=3:对信号3作出反应
I/dalvikvm(1529):将堆栈跟踪写入“/数据/anr/跟踪。txt'
I/系统。out(1529):正在等待调试器解决。。。
I/系统。out(1529):正在等待调试器解决。。。
I/进程(167):发送信号。PID:1529 SIG:3
I/dalvikvm(1529):线程ID=3:对信号3作出反应
I/系统。out(1529):正在等待调试器解决。。。
I/dalvikvm(1529):将堆栈跟踪写入“/数据/anr/跟踪。txt'
I/系统。out(1529):正在等待调试器解决。。。
I/系统。out(1529):正在等待调试器解决。。。
I/进程(167):发送信号。PID:1529 SIG:3
I/dalvikvm(1529):线程ID=3:对信号3作出反应
I/dalvikvm(1529):将堆栈跟踪写入“/数据/anr/跟踪。txt'
I/系统。out(1529):正在等待调试器解决。。。
I/系统。out(1529):正在等待调试器解决。。。
I/进程(167):发送信号。PID:1529 SIG:3
I/dalvikvm(1529):线程ID=3:对信号3作出反应
I/dalvikvm(1529):将堆栈跟踪写入“/数据/anr/跟踪。txt'
I/系统。out(1529):正在等待调试器解决。。。
I/系统。out(1529):正在等待调试器解决。。。
I/System.out(1529):调试器已解决(1359)
I/进程(167):发送信号。PID:1529 SIG:3
I/dalvikvm(1529):线程ID=3:对信号3作出反应
I/dalvikvm(1529):将堆栈跟踪写入“/数据/anr/跟踪。txt'
D/dalvikvm(1529):线程ID=1:撤消后仍挂起(sc=1 dc=1)
D/ProMeasure2DActivity(1529):intent:intent{act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]flg=0x10000000 cmp=com.android.missilelauncher/.MissileLauncherActivity}
D/ProMeasure2DActivity(1529):设置设备UsbDevice[mName=/dev/bus/usb/001/002,mVendorId=1240,mProductId=63,mClass=0,mSubclass=0,mProtocol=0,minterface=[Landroid.os.Parcelable;@40f9e3b0]
活动(1529):打开成功
D/UsbRequestJNI(1529):初始
D/ViewRootImpl(1529): pckname=com.android.missilelauncher
I/进程(167):发送信号。PID:1529 SIG:3
I/dalvikvm(1529):线程ID=3:对信号3作出反应
D/dalvikvm(1529):线程ID=11:撤消后仍挂起(sc=1 dc=1)
I/dalvikvm(1529):将堆栈跟踪写入“/数据/anr/跟踪。txt'
I/ActivityManager(167):显示com.android.missilelauncher/.MissileLauncherActivity:3s791ms
I/ActivityManager(167):不再需要com.Android电子邮件(pid 1266):隐藏#16
芬斯基(696):[1]5。onFinished:安装状态复制成功。
根据我在读了Luksprog的评论后所做的研究,以下是实际的代码解决方案:
>
替换znum.set文本("help");使用此代码:
this.runOnUiThread(new Runnable() {
public void run() {
((TextView) findViewById(R.id.tvZnum)).setText("help");
}
});
我认为这样做的结果是将setText操作添加到主UI线程中的队列中。
以下操作会在运行时导致异常: java.lang.VerifyError:操作数堆栈上的类型错误异常详细信息:location:com/sun/net/httpserver/spi/httpserverprovider$1.run()ljava/lang/object;@27:invokestatic原因:类型“sun/net/httpserver/defaulthttpserverprovide
我正在使用Android应用程序,我想以某种方式打印HashMap的键和值。假设以下是HashMap的内容: 我想以这样一种方式打印HashMap键和值,即字母键首先按字母顺序打印,然后是数字键按升序打印: 我现在做的是: > < li> 获取密钥集并将其保存到数组列表中 使用比较器对数组列表进行排序 使用排序列表打印出地图中的值 这是我的代码: 到目前为止,它还在工作,但是在某些情况下,我没有得
我用ASP.NET c#和angular 8开发了一个web API。我尝试在服务器端(使用NPOI)将一些数据从Oracle导出到Excel文件,并在客户端下载。我可以看到内存流有数据,但是在“返回响应”中,它没有返回给客户端,而是再次调用了函数。这是我的代码: 超文本标记语言: 键入脚本: API 控制器: DAL:(生成excel的最后一个函数。) 这是我在chrome调试器中看到的:[Ne
在我开始这看似很长的一段之前,我想对我可能收到的任何建议/建议表示感谢。朱约翰 我开发了一个简单的测试来帮助我理解spring的声明性(@Transactional)事务管理框架如何与spring的RESTful web服务结合使用。 为此,我开发了以下RESTful控制器: 其中,“tester”是以下服务类的bean,并自动连接到此控制器。类中唯一的方法是事务性的: 在上面,GenericDB
我正在尝试使用spring Boot运行一个web应用程序。 将密码映射为硬编码值。 我的问题是:当应用程序运行并且在主类上使用注释时,只要它命中URL就会发生以下异常: javax.servlet.ServletException:在org.springframework.web.servlet.dispatcherservlet.render(dispatcherservlet.java:13
我正在试着检查用户是在Iphone上还是在Android上 当我注释这行代码时,应用程序运行良好