Я работаю над связью в сети с Autobahn. В главном классе моего приложения я решил позвонить «connect()», когда пользователи нажимают кнопку.Android - сообщение об ошибке отправки сообщения Autobahn Websocket (NullPointerException)
// Toggle Button event
tButton = (ToggleButton) findViewById(R.id.toggleButton1);
tButton.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if(isChecked){
}else{
}
}
});
И после этого, есть MyOffers.class, и если этот класс доступен, класса MyOffers_Fragment производится четыре раза автоматически, потому что MyOffers.class содержит «вида карусели» и есть четыре продукта.
В классе 'MyOffers_Fragment', когда пользователи нажимают одно из изображений продуктов, следует отправить сообщение.
if (pos == 0) {
product_photo.setImageResource(R.drawable.myoffers_0);
product_photo.setOnClickListener(new ImageButton.OnClickListener(){
public void onClick(View v){
String id = "Product0";
Log.d(TAG, "Current product is : " + id);
A.sendMessage(id);
}
});
}
Но 'mConnection.sendTextMessage (id1);' эта строка делает ошибку «NullPointerException». Существует класс «Websocket_Connector.class»
public class WebSocket_Connector {
private static final String TAG = "ECHOCLIENT";
public final WebSocketConnection mConnection = new WebSocketConnection();
public void connect(final String wsuri) {
Log.d(TAG, "Connecting to: " + wsuri);
try {
mConnection.connect(wsuri, new WebSocketHandler() {
@Override
public void onOpen() {
Log.d(TAG, "Status: Connected to " + wsuri);
Log.d(TAG, "Connection successful!\n");
}
@Override
public void onTextMessage(String payload) {
Log.d(TAG, "Got echo: " + payload);
}
@Override
public void onClose(int code, String reason) {
Log.d(TAG, "Connection closed.");
}
});
} catch (WebSocketException e) {
Log.d(TAG, e.toString());
}
public void sendMessage(String message) {
connect("ws://192.168.x.xxx:xxxx");
mConnection.sendTextMessage(message);
}
}
я назвал «соединение()» в главном классе страницы, и после этого попытайтесь отправить сообщение. Но это не работает. Можете ли вы помочь мне?
Где вы получаете NPE? – Blackbelt
@blackbelt mConnection.sendTextMessage (id1); эта строка – user2500696
WebSocketConnection - это ваш собственный класс? – Blackbelt