我正在编写服务器 - 客户端模型,以便将图像从服务器发送到客户端
在服务器端:
public void run() {
int maxClientsCount = this.maxClientsCount;
clientThread[] threads = this.threads;
try {
//Send Image test
byte[] array = Files.readAllBytes(new File("D:\\Sample.png").toPath());
int size=array.length;
System.out.println(size);
//SendImage
DataOutputStream outToClient = new DataOutputStream(clientSocket.getOutputStream());
outToClient.write(array);
clientSocket.close();
} catch (IOException e) {
}
}
和客户端:
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName(Ip);
socket = new Socket(serverAddr, SERVERPORT);
input = socket.getInputStream();
byte[] buffer = ByteStreams.toByteArray(input);
Log.i("Image", String.valueOf(buffer.length));
Bitmap bitmap = BitmapFactory.decodeByteArray(buffer, 0, buffer.length);
image.setImageBitmap((Bitmap.createScaledBitmap(bitmap, 120, 120, false)));
//close
socket.close();
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
问题在于,当我运行应用程序时,虽然应用程序显示从服务器接收的照片,但错误:应用已停止发生。
这是我从logcat获取的错误: enter image description here
是的,我可以修复上述错误,现在应用程序返回上一个错误:
11-18 08:09:04.625 15964-15964/? I/art: Not late-enabling -Xcheck:jni (already on)
11-18 08:09:04.741 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_dependencies_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_dependencies_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.117 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_0_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_0_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.143 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_1_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_1_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.181 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_2_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_2_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.208 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_3_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_3_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.244 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_4_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_4_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.263 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_5_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_5_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.291 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_6_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_6_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.307 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_7_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_7_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.323 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_8_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_8_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.338 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_9_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_9_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.339 15964-15964/com.example.user.assignment W/System: ClassLoader referenced unknown path: /data/app/com.example.user.assignment-1/lib/x86
11-18 08:09:05.341 15964-15964/com.example.user.assignment I/InstantRun: starting instant run server: is main process
11-18 08:09:05.388 15964-15964/com.example.user.assignment D/Image Size:: 37858
11-18 08:09:15.624 15964-15964/com.example.user.assignment W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
11-18 08:09:15.948 15964-15964/com.example.user.assignment W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
11-18 08:09:23.791 15964-16117/com.example.user.assignment I/System.out: FROM SERVER:��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
11-18 08:09:24.197 15964-16122/com.example.user.assignment I/Image: 39
11-18 08:09:24.197 15964-16122/com.example.user.assignment D/skia: --- SkImageDecoder::Factory returned null
11-18 08:09:24.345 15964-15964/com.example.user.assignment D/AndroidRuntime: Shutting down VM
11-18 08:09:24.345 15964-15964/com.example.user.assignment E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.user.assignment, PID: 15964
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:610)
at com.example.user.assignment.SendResult$ClientThread$1.run(SendResult.java:64)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
当我尝试保存图像而不是在屏幕上显示图像时,image.jpg不会显示任何内容。也许我在接收图像或将数据转换为字节数组时遇到问题?