致命异常:AsyncTask 1 java.lang.RuntimeException:向服务器发送映像时,执行doInBackground()时出错
伙计们,我正在android上开发一个应用程序,将图像从android应用程序传输到服务器。我已经用JAVA实现了服务器,到目前为止,该应用程序仅用于内部网络目的。我在我的异步类代码中遇到了一个致命的异常问题,我没有发现我做错了什么。请帮助我,我将非常感谢你们 Android应用程序代码 我实现服务器只是为了接收字节,而不是为了将其转换为图像 原木猫致命异常: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
在为阵列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");
}