-1

我有一个类,我已经实现了可运行,我在这个类的一个函数中启动线程,我从主活动中调用这个函数,我创建这个类的对象并调用线程类的方法。我的主我调用此类方法的活动代码是:

  broadcast broadcastobject.threadfunc(messages);

我创建线程的班级是:

  public class broadcast  {

private DatagramSocket socket;
String str;
private static final int TIMEOUT_MS = 10;
WifiManager mWifi;
EditText et;
DatagramPacket packet;
Button bt;
private static final int SERVERPORT = 11111;
private static final String SERVER_IP = "192.168.1.255";


public void threadfunc(String message){
    str=message;
                new Thread(new ClientThread()).start();
}

/*
 private InetAddress getBroadcastAddress() throws IOException {
        DhcpInfo dhcp = mWifi.getDhcpInfo();
        if (dhcp == null) {
          //Log.d(TAG, "Could not get dhcp info");
          return null;
        }

        int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
        byte[] quads = new byte[4];
        for (int k = 0; k < 4; k++)
          quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
        return InetAddress.getByAddress(quads);
      }

      */

class ClientThread implements Runnable {

    @Override
    public void run() {


        try {
            socket = new DatagramSocket(SERVERPORT);

            socket.setBroadcast(true);
    //              socket.setSoTimeout(TIMEOUT_MS);
        } catch (SocketException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

            InetAddress serverAddr = null;
            try {


                serverAddr = InetAddress.getByName(SERVER_IP);


            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

           packet = new DatagramPacket(str.getBytes(), str.length(),serverAddr,SERVERPORT);

            try {

                    socket.send(packet);

                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    } 

    }

}

我的日志猫是:

   08-31 21:55:56.277: D/gralloc_goldfish(1669): Emulator without GPU emulation detected.
   08-31 21:56:02.467: D/AndroidRuntime(1669): Shutting down VM
   08-31 21:56:02.467: W/dalvikvm(1669): threadid=1: thread exiting with uncaught  exception (group=0x409961f8)
   08-31 21:56:02.517: E/AndroidRuntime(1669): FATAL EXCEPTION: main
   08-31 21:56:02.517: E/AndroidRuntime(1669): java.lang.NullPointerException
   08-31 21:56:02.517: E/AndroidRuntime(1669):  at soft.b.peopleassist.Send$1.onClick(Send.java:113)
    08-31 21:56:02.517: E/AndroidRuntime(1669):     at android.view.View.performClick(View.java:3480)
   08-31 21:56:02.517: E/AndroidRuntime(1669):  at android.view.View$PerformClick.run(View.java:13983)
    08-31 21:56:02.517: E/AndroidRuntime(1669):     at android.os.Handler.handleCallback(Handler.java:605)
    08-31 21:56:02.517: E/AndroidRuntime(1669):     at android.os.Handler.dispatchMessage(Handler.java:92)
     08-31 21:56:02.517: E/AndroidRuntime(1669):    at android.os.Looper.loop(Looper.java:137)
       08-31 21:56:02.517: E/AndroidRuntime(1669):  at android.app.ActivityThread.main(ActivityThread.java:4340)
      08-31 21:56:02.517: E/AndroidRuntime(1669):   at java.lang.reflect.Method.invokeNative(Native Method)
      08-31 21:56:02.517: E/AndroidRuntime(1669):   at java.lang.reflect.Method.invoke(Method.java:511)
     08-31 21:56:02.517: E/AndroidRuntime(1669):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
     08-31 21:56:02.517: E/AndroidRuntime(1669):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
   08-31 21:56:02.517: E/AndroidRuntime(1669):  at dalvik.system.NativeStart.main(Native Method)
4

1 回答 1

1

这仅仅意味着您使用的模拟器没有启用 GPU 模拟。在 Android SDK Tools R15 中,您可以启用 GPU 仿真。您需要创建一个新的仿真器虚拟设备并在硬件属性中将 GPU 仿真设置为 true。

在此处输入图像描述

于 2013-08-31T22:01:54.397 回答