我目前正在開發一個android應用程序,它可以通過網絡向AV接收器發送命令。我已經得到了儘可能多的按鈕和編碼,這樣當按鈕被點擊時,它會發送命令PWON \ r到指定的IP和端口。我還在清單文件中給出了完整的互聯網許可。問題是,只要按下按鈕,應用程序就會停止工作。我不確定問題是什麼。Android App停止工作
CODE:
package av.control.test;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class AVControlActivity extends Activity {
Button mbutt;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mbutt = (Button)findViewById(R.id.Button);
}
public void onClick(View view) throws UnknownHostException, IOException
{
new Thread() {
public void run() {
Socket socket = null;
try {
socket = new Socket("192.168.1.74", 23);
} catch (UnknownHostException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try{
dataOutputStream.Object BUFFER = null;
write(BUFFER);
String buffer="PWON\r";
OutputStream os=socket.getOutputStream();
os.write(buffer.getBytes());
} catch(IOException e)
{
//error code
}
}
}.start();
}
private void write(Object BUFFER) {
// TODO Auto-generated method stub
}
}
下面是main.xml中,以及如果這是任何使用:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
android:id="@+id/Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Power On"
android:onClick="onClick" />
我希望得到任何幫助。
編輯:
logcat的
09-15 14:31:30.742: I/dalvikvm(1209): threadid=3: reacting to signal 3
09-15 14:31:31.301: E/dalvikvm(1209): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
09-15 14:31:31.322: I/dalvikvm(1209): threadid=3: reacting to signal 3
09-15 14:31:31.421: I/dalvikvm(1209): Wrote stack traces to '/data/anr/traces.txt'
09-15 14:31:31.801: I/dalvikvm(1209): threadid=3: reacting to signal 3
09-15 14:31:31.901: I/dalvikvm(1209): Wrote stack traces to '/data/anr/traces.txt'
09-15 14:31:32.381: I/dalvikvm(1209): threadid=3: reacting to signal 3
09-15 14:31:32.451: I/dalvikvm(1209): Wrote stack traces to '/data/anr/traces.txt'
09-15 14:31:32.711: D/gralloc_goldfish(1209): Emulator without GPU emulation detected.
09-15 14:31:32.843: I/dalvikvm(1209): threadid=3: reacting to signal 3
09-15 14:31:32.901: I/dalvikvm(1209): Wrote stack traces to '/data/anr/traces.txt'
09-15 14:34:53.081: W/System.err(1209): java.net.ConnectException: failed to connect to /192.168.1.74 (port 23): connect failed: ETIMEDOUT (Connection timed out)
09-15 14:34:53.091: W/System.err(1209): at libcore.io.IoBridge.connect(IoBridge.java:114)
09-15 14:34:53.091: W/System.err(1209): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
09-15 14:34:53.101: W/System.err(1209): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
09-15 14:34:53.121: W/System.err(1209): at java.net.Socket.startupSocket(Socket.java:566)
09-15 14:34:53.121: W/System.err(1209): at java.net.Socket.tryAllAddresses(Socket.java:127)
09-15 14:34:53.132: W/System.err(1209): at java.net.Socket.(Socket.java:177)
09-15 14:34:53.132: W/System.err(1209): at java.net.Socket.(Socket.java:149)
09-15 14:34:53.161: W/System.err(1209): at av.control.test.AVControlActivity$1.run(AVControlActivity.java:27)
09-15 14:34:53.161: W/System.err(1209): Caused by: libcore.io.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
09-15 14:34:53.182: W/System.err(1209): at libcore.io.Posix.connect(Native Method)
09-15 14:34:53.182: W/System.err(1209): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
09-15 14:34:53.191: W/System.err(1209): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
09-15 14:34:53.211: W/System.err(1209): at libcore.io.IoBridge.connect(IoBridge.java:112)
09-15 14:34:53.211: W/System.err(1209): ... 7 more
09-15 14:34:53.222: W/dalvikvm(1209): threadid=12: thread exiting with uncaught exception (group=0x409c01f8)
09-15 14:34:53.241: E/AndroidRuntime(1209): FATAL EXCEPTION: Thread-121
09-15 14:34:53.241: E/AndroidRuntime(1209): java.lang.NullPointerException
09-15 14:34:53.241: E/AndroidRuntime(1209): at av.control.test.AVControlActivity$1.run(AVControlActivity.java:39)
+6
首先,瞭解如何調試您的應用程序(如果不是,您將永遠無法開發任何東西)。所以,請閱讀logcat輸出,它會給你一些提示。如果你仍然輸了,在這裏發佈logcat輸出,我們將能夠幫助你... –
+0
謝謝你的答覆。我查看了LogCat,並從我所知道的連接已超時。我可能是錯的,但如果超時了,我不知道爲什麼。我還將LogCat報告添加到原始帖子中。 –
+0
如果在「連接超時」前幾天IP是正確的,那麼您擁有DHCP並且Receiver現在有另一個IP地址。試試'ping',如果它工作'telnet 192.168.1.74 23'。端口23是telnet端口。 如果IP已更改,請使用接收方主機名或配置您的路由器,以確保接收方始終獲得相同的IP地址。 –