Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TCP连接期间应用程序崩溃_Java_Android_Eclipse_Android Asynctask_Tcpclient - Fatal编程技术网

Java TCP连接期间应用程序崩溃

Java TCP连接期间应用程序崩溃,java,android,eclipse,android-asynctask,tcpclient,Java,Android,Eclipse,Android Asynctask,Tcpclient,我是Android编程新手。我的应用程序在创建套接字时崩溃。我在清单中添加了互联网许可,Wifi已打开。我有一个服务器在PC上等待Android客户端;它与我的其他应用程序配合得很好。我不知道这个应用程序的问题出在哪里。我非常感谢你的帮助 日志错误 01-23 13:10:32.110:E/AndroidRuntime(4493):致命异常:主要 01-23 13:10:32.110:E/AndroidRuntime(4493):java.lang.RuntimeException:无法启动活动

我是Android编程新手。我的应用程序在创建套接字时崩溃。我在清单中添加了互联网许可,Wifi已打开。我有一个服务器在PC上等待Android客户端;它与我的其他应用程序配合得很好。我不知道这个应用程序的问题出在哪里。我非常感谢你的帮助

日志错误

01-23 13:10:32.110:E/AndroidRuntime(4493):致命异常:主要
01-23 13:10:32.110:E/AndroidRuntime(4493):java.lang.RuntimeException:无法启动活动组件信息{com.example.usapp/com.example.usapp.Settings}:android.os.NetworkOnMainThreadException
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1751)
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767)
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.app.ActivityThread.access$1500(ActivityThread.java:122)
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005)
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.os.Handler.dispatchMessage(Handler.java:99)上
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.os.Looper.loop(Looper.java:132)
01-23 13:10:32.110:E/AndroidRuntime(4493):位于android.app.ActivityThread.main(ActivityThread.java:4028)
01-23 13:10:32.110:E/AndroidRuntime(4493):在java.lang.reflect.Method.invokenactive(本机方法)
01-23 13:10:32.110:E/AndroidRuntime(4493):在java.lang.reflect.Method.invoke(Method.java:491)
01-23 13:10:32.110:E/AndroidRuntime(4493):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
01-23 13:10:32.110:E/AndroidRuntime(4493):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)上
01-23 13:10:32.110:E/AndroidRuntime(4493):在dalvik.system.NativeStart.main(本机方法)
01-23 13:10:32.110:E/AndroidRuntime(4493):由以下原因引起:android.os.NetworkOnMainThreadException
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077)
01-23 13:10:32.110:E/AndroidRuntime(4493):在dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:368)
01-23 13:10:32.110:E/AndroidRuntime(4493):在org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:208)
01-23 13:10:32.110:E/AndroidRuntime(4493):在org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:431)
01-23 13:10:32.110:E/AndroidRuntime(4493):在java.net.Socket.connect(Socket.java:901)上
01-23 13:10:32.110:E/AndroidRuntime(4493):在java.net.Socket.connect(Socket.java:844)上
01-23 13:10:32.110:E/AndroidRuntime(4493):位于com.example.usapp.Stream.doInBackground(Stream.java:46)
01-23 13:10:32.110:E/AndroidRuntime(4493):在com.example.usapp.Settings.onCreate(Settings.java:37)
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
01-23 13:10:32.110:E/AndroidRuntime(4493):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1715)
01-23 13:10:32.110:E/AndroidRuntime(4493):。。。11更多

Java类

package com.example.usapp;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Handler;
import android.util.Log;
public class Stream extends AsyncTask<Void, Void, Void>{
  Bitmap image;
  int frameCounter=0;
  int checkCounterFPS=0;
  long lastFpsTime=0;
  double FPS;
  protected Handler handler_bitmap, handlerdata;
  boolean firstSetOfFPS=false;
  double availableFPS;
  double toleranceValue;
  boolean firstFalseFPS = false;
  byte[] datainput = new byte[1024];
  Socket socket;
  @Override
  protected Void doInBackground(Void... params) {
    Log.i("DUPA","po String doInBackground(String... params) ");
    try {
      Log.i("DUPA","przed socket");
      socket = new Socket();
      InetSocketAddress adres = new InetSocketAddress("192.168.1.50", 4444);
      //adres.
      socket.connect(adres);
      //socket = new Socket("192.168.1.50", 4444);
      Log.i("DUPA","po socket");
      BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
      Log.i("DUPA","po socketconnected ");  
      /*
      do {
        try {
          ByteBuffer buffer = ByteBuffer.allocate(9);
          in.read(buffer.array());
          byte[] bBuffer = new byte[9];
          buffer.get(bBuffer, 0, 9);
          int len = Integer.parseInt(new String(bBuffer,"US-ASCII"));
          int bytesRecieved = 0;
          ByteBuffer completeBuf;
          completeBuf = ByteBuffer.allocate(len);
          while (len > bytesRecieved) {
            int inSize = in.available();
            if (inSize > len- bytesRecieved) {
              buffer = ByteBuffer.allocate(len- bytesRecieved);
              bytesRecieved += len- bytesRecieved;
              in.read(buffer.array());
              completeBuf.put(buffer);
            } else {
              bytesRecieved += inSize;
              buffer = ByteBuffer.allocate(inSize);
              in.read(buffer.array());
              completeBuf.put(buffer);
            }
          }
          frameCounter++;
          long delay = (long) (System.currentTimeMillis() - lastFpsTime);
          if (delay > 1000) {
            checkCounterFPS++;
            FPS = (((double) frameCounter) / delay) * 1000;
            handler_bitmap.post(new Runnable() {
              public void run() {
                ///usunieto fps set text
              }
            });
            frameCounter = 0;
            lastFpsTime = System.currentTimeMillis();
          }
          if (checkCounterFPS >= 3 && firstSetOfFPS == true) {
            checkCounterFPS = 0;
            if (FPS <= ((double) availableFPS - toleranceValue)
                || FPS >= ((double) availableFPS + toleranceValue)) {
              firstFalseFPS = true;
            }
          } else if (firstFalseFPS == true) {
            if (FPS <= ((double) availableFPS - toleranceValue)
                || FPS >= ((double) availableFPS + toleranceValue)) {
              // setSendText("FPS",(int) FPS);
              firstFalseFPS = false;
            }
          }
          //publishProgress(completeBuf);
        } catch (NumberFormatException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          Log.i("DUPA","blad1");
        } catch (UnknownHostException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          Log.i("DUPA","blad2");
        }
      } while (!socket.isInputShutdown() && !socket.isClosed()); //
      // publishProgress("Status: Closed".getBytes());*/
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      Log.i("DUPA","blad3");
    }
    Log.i("AsyncTask", "doInBackground: Finished");
    return null;
  }
  protected Bitmap onProgressUpdate(ByteBuffer... values) {
    Log.i("DUPA","blad4");
    return image = BitmapFactory.decodeByteArray(values[0].array(), 0,values[0].array().length);
  }
}
package com.example.usapp;
导入java.io.BufferedInputStream;
导入java.io.IOException;
导入java.net.InetSocketAddress;
导入java.net.Socket;
导入java.net.SocketAddress;
导入java.net.UnknownHostException;
导入java.nio.ByteBuffer;
导入android.graphics.Bitmap;
导入android.graphics.BitmapFactory;
导入android.os.AsyncTask;
导入android.os.Handler;
导入android.util.Log;
公共类流扩展异步任务{
位图图像;
int frameCounter=0;
int-ps=0;
长时间=0;
双FPS;
受保护的处理程序\u位图、handlerdata;
布尔值firstSetOfFPS=false;
双可用EFPS;
双公差值;
布尔值firstFalseFPS=false;
字节[]数据输入=新字节[1024];
插座;
@凌驾
受保护的Void doInBackground(Void…参数){
Log.i(“DUPA”,“po String doInBackground(String…params)”);
试一试{
Log.i(“DUPA”、“przed插座”);
套接字=新套接字();
InetSocketAddress adres=新的InetSocketAddress(“192.168.1.50”,4444);
//阿迪斯。
插座连接(adres);
//插座=新插座(“192.168.1.50”,4444);
Log.i(“DUPA”、“po插座”);
BufferedInputStream in=新的BufferedInputStream(socket.getInputStream());
Log.i(“DUPA”、“po socketconnected”);
/*
做{
试一试{
ByteBuffer缓冲区=ByteBuffer.allocate(9);
in.read(buffer.array());
字节[]bBuffer=新字节[9];
get(bBuffer,0,9);
int len=Integer.parseInt(新字符串(bBuffer,“US-ASCII”);
接收的整数字节数=0;
ByteBuffer completeBuf;
completeBuf=按缓冲区分配(len);
而(len>BytesReceived){
int inSize=in.available();
如果(inSize>len-BytesReceived){
buffer=ByteBuffer.allocate(len-bytesreceived);
BytesReceived+=len-BytesReceived;
in.read(buffer.array());
完全缓冲(缓冲);
}否则{
BytesReceived+=inSize;
buffer=ByteBuffer.allocate(inSize);
in.read(buffer.array());
完全缓冲(缓冲);
}
}
帧计数器++;
长延迟=(长)(System.currentTimeMillis()-lastFpsTime);
如果(延迟>1000){
checkps++;
FPS=((双)帧计数器)/延迟*1000;
handler_bitmap.post(新的Runnable(){
公开募捐{
Stream task = new Stream();
task.execute();