Reputation: 29
UPDATED: I updated it seith some logs inputs, than you for your help.
I'm applying the following code:
@Override
public void run() {
byte[] bytes = null;
int TIMEOUT = 5000;
int status = connection.bulkTransfer(ep, bytes, ep.getMaxPacketSize(), TIMEOUT);
Log.d(TAG, "status: " + status);
write_to_screen( bytes );
}
public void write_to_screen( byte[] bytes ) {
Log.d(TAG, "bytes: " + bytes);
String str_non_final = null;
try {
str_non_final = new String( bytes, "UTF-8");
Log.d(TAG, "str_non_final : " + str_non_final );
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
final String str = str_non_final;
Log.d(TAG, "str: " + str);
runOnUiThread(new Runnable() {@Override public void run()
{
textView7.setText( str );
Log.d(TAG, "UI updated");
}
});
}
The result of the logcat is as follows:
D/EthernetActivity(15721): open SUCCESS
D/EthernetActivity(15721): status: -1
D/EthernetActivity(15721): bytes: null
so it would seem to me that the problem is in "str_non_final = new String( bytes, "UTF-8");". What is wrong with this?
Upvotes: 0
Views: 84
Reputation: 12695
in this statement
str_non_final = new String( bytes, "UTF-8");
you are using byte and which is null as printed in your logcat. so it will throw the NullPointerException
and your catch is able to handle only UnsupportedEncodingException
.
make sure that bytes
should not null before call
write_to_screen( bytes );
Upvotes: 1