FoxPB
Março 2, 2013, 9:08pm
#1
esta dando uma Exception justamente na linha 40 e ainda não sei que danado é já fiz debug e tudo, alguma alma caridosa poderia me ajudar
Agradeço desde já pela atenção.
[code]public void opcao() {
setContentView(R.layout.opcao);
btconectar_ao_servidor = (Button) findViewById(R.id.btconectar_ao_servidor);
btcriar_servidor = (Button) findViewById(R.id.btcriar_servidor);
btVoltarOpcao = (Button) findViewById(R.id.btVoltarOpcao);
btconectar_ao_servidor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.cliente);
edIp = (EditText) findViewById(R.id.edIp);
edporta = (EditText) findViewById(R.id.edporta);
btconectar = (Button) findViewById(R.id.btconectar);
btVoltarCliente = (Button) findViewById(R.id.btVoltarCliente);
btVoltarCliente.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
opcao();
}
});
btconectar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edIp != null & edporta != null) {
Socket socket = null;
DataOutputStream dataOutPutStream = null;
DataInputStream dataInPutStream = null;
String ip = edIp.getText().toString();
int porta = Integer.parseInt(edporta.getText().toString());
try {
socket = new Socket(ip, porta);
AlertDialog.Builder dialogo = new AlertDialog.Builder(
MainActivity.this);
dialogo.setTitle("Conectado:");
dialogo.setMessage("Coneção realizada com sucesso");
dialogo.setNeutralButton("OK", null);
dialogo.show();
setContentView(R.layout.chat);
btsair = (Button) findViewById(R.id.btsair);
btsair.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
opcao();
}
});
textodeentrada = (EditText) findViewById(R.id.textodeentrada);
textosaida = (EditText) findViewById(R.id.textosaida);
dataOutPutStream = new DataOutputStream(socket
.getOutputStream());
dataInPutStream = new DataInputStream(socket
.getInputStream());
dataOutPutStream.writeUTF(textosaida.getText()
.toString());
@SuppressWarnings("deprecation")
String stringLida = dataInPutStream.readLine();
textodeentrada.setText(stringLida);
} catch (Exception e) {
AlertDialog.Builder dialogo = new AlertDialog.Builder(
MainActivity.this);
dialogo.setTitle("Erro:");
dialogo.setMessage("Excepition Classe Main, Metodo opcao();2");
dialogo.setNeutralButton("OK", null);
dialogo.show();
e.printStackTrace();
} finally {
try {
if (socket != null) {
socket.close();
}
if (dataOutPutStream != null) {
dataOutPutStream.close();
}
if (dataInPutStream != null) {
dataInPutStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
});
}
});[/code]
Quando capturar a exceção, imprima o erro, utiliza o comando:
e.printStackTrace();
wiliamps
FoxPB
Março 4, 2013, 1:07pm
#3
Obrigado pela dica amigo, mas já tem isso na linha 81 e não esta imprimindo nada…
Adiciona um catch de Throwable:
} catch (Throwable e) {
e.printStackTrace();
}
wiliamps
FoxPB
Março 6, 2013, 11:25pm
#5
Mesmo implementando o Throwable não consegui detectar o erro, ai penssei vou fazer tudo dinovo e agora com servidor android em vez de java (na verdade vou precisar de um servidor android mesmo), minha nescessidade é a seguinte estou fazendo um projeto de um jogo que vou precisar de rede para mandar o valor de ataque e o valor de HP do personagem para o outro tablet, no caso irei usar cliente android e servidor android.
Só que desta forma nada funciona:
O cliente continua com o mesmo erro
E o servidor NÂO RODA.
Agradeço pela atenção desde já.
[code]package com.example.clienteservidor2;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
Button btcliente, btservidor, btconectar;
EditText edip, edporta, edtextosaida, textoentrada;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inicio();
}
public void inicio() {
btcliente = (Button) findViewById(R.id.btcliente);
btservidor = (Button) findViewById(R.id.btservidor);
btcliente.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.cliente);
cliente();
}
});
btservidor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setContentView(R.layout.servidor);
try {
servidor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
private void cliente() {
edip = (EditText) findViewById(R.id.edip);
edporta = (EditText) findViewById(R.id.edporta);
btconectar = (Button) findViewById(R.id.btconectar);
btconectar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (edip != null & edporta != null) {
Socket socket = null;
DataOutputStream dataOutPutStream = null;
DataInputStream dataInPutStream = null;
String ip = edip.getText().toString();
int porta = Integer.parseInt(edporta.getText().toString());
try {
System.out.println("Passo aqui 1");
socket = new Socket(ip, porta);
System.out.println("passo aqui 2");
AlertDialog.Builder dialogo = new AlertDialog.Builder(
MainActivity.this);
dialogo.setTitle("Conectado:");
dialogo.setMessage("Coneção realizada com sucesso");
dialogo.setNeutralButton("OK", null);
dialogo.show();
setContentView(R.layout.clientechat);
textoentrada = (EditText) findViewById(R.id.textoentrada);
edtextosaida = (EditText) findViewById(R.id.edtextosaida);
dataOutPutStream = new DataOutputStream(socket.getOutputStream());
dataInPutStream = new DataInputStream(socket.getInputStream());
dataOutPutStream.writeUTF(edtextosaida.getText().toString());
@SuppressWarnings("deprecation")
String stringLida = dataInPutStream.readLine();
textoentrada.setText(stringLida);
} catch (Exception e) {
AlertDialog.Builder dialogo = new AlertDialog.Builder(
MainActivity.this);
dialogo.setTitle("Erro:");
dialogo.setMessage("Excepition Classe Main, Metodo opcao();2");
dialogo.setNeutralButton("OK", null);
dialogo.show();
e.printStackTrace();
} finally {
try {
if (socket != null) {
socket.close();
}
if (dataOutPutStream != null) {
dataOutPutStream.close();
}
if (dataInPutStream != null) {
dataInPutStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
});
}
private void servidor() throws IOException {
ServerSocket serverSocket = new ServerSocket(1234);
Socket socket;
while(true){
socket = serverSocket.accept();
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
DataInputStream dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream.writeBytes("Servidor: " + dataInputStream.readUTF());
dataOutputStream.flush();
AlertDialog.Builder dialogo = new AlertDialog.Builder(
MainActivity.this);
dialogo.setTitle("Mensagem");
dialogo.setMessage("A mensagem foi enviada com sucesso!!!");
dialogo.setNeutralButton("OK", null);
dialogo.show();
dataOutputStream.close();
socket.close();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
[/code]
Por favor, não destaque seu tópico com tags óbvias, como [AJUDA], [DÚVIDA], [JAVA], etc…
FoxPB
Março 7, 2013, 6:28pm
#7
Descobrir, tem que fazer uma thread a parte.
Obrigado a todos aqueles que me ajudaram