Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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
致命异常:AsyncTask 1 java.lang.RuntimeException:向服务器发送映像时,执行doInBackground()时出错_Java_Android_Android Asynctask - Fatal编程技术网

致命异常:AsyncTask 1 java.lang.RuntimeException:向服务器发送映像时,执行doInBackground()时出错

致命异常:AsyncTask 1 java.lang.RuntimeException:向服务器发送映像时,执行doInBackground()时出错,java,android,android-asynctask,Java,Android,Android Asynctask,伙计们,我正在android上开发一个应用程序,将图像从android应用程序传输到服务器。我已经用JAVA实现了服务器,到目前为止,该应用程序仅用于内部网络目的。我在我的异步类代码中遇到了一个致命的异常问题,我没有发现我做错了什么。请帮助我,我将非常感谢你们 Android应用程序代码 我实现服务器只是为了接收字节,而不是为了将其转换为图像 原木猫 在为阵列img分配任何内容之前,需要初始化阵列img img = new byte[1024]; for(int i=0;i<ima

伙计们,我正在android上开发一个应用程序,将图像从android应用程序传输到服务器。我已经用JAVA实现了服务器,到目前为止,该应用程序仅用于内部网络目的。我在我的异步类代码中遇到了一个致命的异常问题,我没有发现我做错了什么。请帮助我,我将非常感谢你们

Android应用程序代码

我实现服务器只是为了接收字节,而不是为了将其转换为图像

原木猫


在为阵列img分配任何内容之前,需要初始化阵列img

img = new byte[1024];    
for(int i=0;i<image.length;i++) {
        img[c] = image[i];
        c++;
        DatagramPacket packet;
        packet = new DatagramPacket(img,img.length,inet,4000);
        img = new byte[1024];
        c = 0;
        clientSocket.send(packet);
        System.out.println("sent a mini-packet");
}

请在logcat中发布错误的确切输出。@Chris现在我也根据您的要求放置了logcat。
public class Server {
private static ServerSocket serverSocket;
private static Socket clientSocket;
private static InputStreamReader inputStreamReader;
private static BufferedReader bufferedReader;
private static String message;

public static void main(String[] args) throws UnknownHostException {
    try {
        serverSocket = new ServerSocket(4000); // Server socket

    } catch (IOException e) {
        System.out.println("Could not listen on port: 4444");
    }
            System.out.println("Server started. Listening to the port 4444");

    while (true) {
        try {

            clientSocket = serverSocket.accept(); // accept the client connection
            inputStreamReader = new InputStreamReader(clientSocket.getInputStream());
            bufferedReader = new BufferedReader(inputStreamReader); // get the client message
            message = bufferedReader.readLine();

            System.out.println(message);
            inputStreamReader.close();
            clientSocket.close();

        } catch (IOException ex) {
            System.out.println("Problem in message reading");
        }
    }

}
04-04 07:13:27.630      920-981/com.example.ali.cottondiseasedetection E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1
java.lang.RuntimeException: An error occured while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:299)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
        at java.util.concurrent.FutureTask.run(FutureTask.java:239)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
        at java.lang.Thread.run(Thread.java:856)
 Caused by: java.lang.NullPointerException
        at com.example.ali.cottondiseasedetection.TakeImage$SendMessage.doInBackground(TakeImage.java:151)
        at com.example.ali.cottondiseasedetection.TakeImage$SendMessage.doInBackground(TakeImage.java:135)
        at android.os.AsyncTask$2.call(AsyncTask.java:287)
        at java.util.concurrent.FutureTask.run(FutureTask.java:234)
img = new byte[1024];    
for(int i=0;i<image.length;i++) {
        img[c] = image[i];
        c++;
        DatagramPacket packet;
        packet = new DatagramPacket(img,img.length,inet,4000);
        img = new byte[1024];
        c = 0;
        clientSocket.send(packet);
        System.out.println("sent a mini-packet");
}