作成したファイルに USB データを記録するプログラムがあり、正常に動作します。setText を使用してこのデータの一部を表示しようとしていますが、setText は一度正しく実行され、次に呼び出されたときに Source not found クラッシュが発生します。
この実行で 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;
}
}
}
上記の setText 行を削除すると、プログラムは問題なく実行され、データがファイルに保存されます。上記のコードを実行すると、プログラムがクラッシュし、ソースが見つからないというメッセージが表示されます。
savetofile 行を中断してプログラムを開始すると、tvZnum が設定された状態でレイアウトが更新され、問題なく動作します。
次に、コードをステップ実行して setText 行に戻ります。
setText を 2 回目に実行するまでは問題ありませんが、クラッシュします。
クラッシュすると、 android.view.ViewRootImpl.checkThread() 行 4077 にあるようです。ここの投稿にスクリーン キャプチャー画像を追加しようとしましたが、まだ十分な評判ポイントがありません。
私は宣言する:
TextView znum;
そしてこれをOnCreateに入れます:
znum = (TextView) findViewById(R.id.tvZnum);
また、tvZnum はランチャーと R で問題なく表示されます。
私は答えが単純でなければならないことを知っていますが、私はそれを理解できません。
そこに何かアイデアはありますか?
ありがとう、デール
編集:ここにlogCatがあります(ギリシャ語で、ここでフォーマットする方法がわかりませんでした):
I/dalvikvm(1529): threadid=3: シグナル 3 に反応しています
I/dalvikvm(1529): スタック トレースを「/data/anr/traces.txt」に書き込みました
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/プロセス (167): シグナルを送信しています。PID: 1529 SIG: 3
I/dalvikvm(1529): threadid=3: シグナル 3 に反応しています
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/dalvikvm(1529): スタック トレースを「/data/anr/traces.txt」に書き込みました
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/プロセス (167): シグナルを送信しています。PID: 1529 SIG: 3
I/dalvikvm(1529): threadid=3: シグナル 3 に反応しています
I/dalvikvm(1529): スタック トレースを「/data/anr/traces.txt」に書き込みました
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/プロセス (167): シグナルを送信しています。PID: 1529 SIG: 3
I/dalvikvm(1529): threadid=3: シグナル 3 に反応しています
I/dalvikvm(1529): スタック トレースを「/data/anr/traces.txt」に書き込みました
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/System.out(1529): デバッガーが落ち着くのを待っています...
I/System.out(1529): デバッガーが解決しました (1359)
I/プロセス (167): シグナルを送信しています。PID: 1529 SIG: 3
I/dalvikvm(1529): threadid=3: シグナル 3 に反応しています
I/dalvikvm(1529): スタック トレースを「/data/anr/traces.txt」に書き込みました
D/dalvikvm(1529): threadid=1: 元に戻した後もサスペンド中 (sc=1 dc=1)
D/ProMeasure2DActivity(1529): インテント: インテント { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.android.missilelauncher/.MissileLauncherActivity }
D/ProMeasure2DActivity( 1529): setDevice UsbDevice[mName=/dev/bus/usb/001/002,mVendorId=1240,mProductId=63,mClass=0,mSubclass=0,mProtocol=0,mInterfaces=[Landroid.os.小包可能;@40f9e3b0]
D/ProMeasure2DActivity(1529):成功を開く
D/UsbRequestJNI(1529): 初期化
D/ViewRootImpl(1529): pckname = com.android.missilelauncher
I/プロセス (167): シグナルを送信しています。PID: 1529 SIG: 3
I/dalvikvm(1529): threadid=3: シグナル 3 に反応しています
D/dalvikvm(1529): threadid=11: 元に戻した後もサスペンド中 (sc=1 dc=1)
I/dalvikvm(1529): スタック トレースを「/data/anr/traces.txt」に書き込みました
I/ActivityManager( 167): 表示された com.android.missilelauncher/.MissileLauncherActivity: +3s791ms
I/ActivityManager(167): もう com.android.email は必要ありません (pid 1266): hidden #16
D/Finsky (696): [1] 5.onFinished: インストール状態のレプリケーションが成功しました。