Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.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
Android/C#Socket-1帧后解码/编码String64错误(几乎完成)_C#_Android_Sockets_Bitmap - Fatal编程技术网

Android/C#Socket-1帧后解码/编码String64错误(几乎完成)

Android/C#Socket-1帧后解码/编码String64错误(几乎完成),c#,android,sockets,bitmap,C#,Android,Sockets,Bitmap,我创建了一个C#服务器,它通过套接字向android客户端发送位图。该位图不断更新,因为它是一个视频源 服务器C# 客户端Android @Override protected Void doInBackground(Void... arg0) { Socket socket = null; try { socket = new Socket(dstAddress, dstPort); Scanner

我创建了一个C#服务器,它通过套接字向android客户端发送位图。该位图不断更新,因为它是一个视频源

服务器C#

客户端Android

    @Override
protected Void doInBackground(Void... arg0) {


        Socket socket = null;

        try {
            socket = new Socket(dstAddress, dstPort);

            Scanner r = new Scanner(new InputStreamReader(socket.getInputStream()));

            while(true) {

                valores[26] = r.nextLine();

                publishProgress(valores[26]);
            }

    return null;

}

@Override
protected void onProgressUpdate(String... values) {

    byte[] decodedString = Base64.decode(values[26],Base64.NO_WRAP);
    Bitmap master_bitmap = BitmapFactory.decodeByteArray(decodedString,0,decodedString.length);
    master_frame.setImageBitmap(master_bitmap);

}
发送第一帧,Android客户端将正确显示该帧。但当下一帧到来时,Android客户端崩溃

错误:

进程:com.example.tiago.java\u android,PID:826 java.lang.IllegalArgumentException:错误的base-64 位于android.util.Base64.decode(Base64.java:161) 位于android.util.Base64.decode(Base64.java:136) 位于android.util.Base64.decode(Base64.java:118) 在com.example.tiago.java_android.Cliente.onProgressUpdate(Cliente.java:228)上 在com.example.tiago.java_android.Cliente.onProgressUpdate(Cliente.java:28)上 在android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:656)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:135) 位于android.app.ActivityThread.main(ActivityThread.java:5431) 位于java.lang.reflect.Method.invoke(本机方法) 位于java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914)上 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)

我认为valores[26]的数据被破坏了,但事实并非如此。我得到的数据是正确的

我过去经常检查数据是否正确


有什么想法吗?

发送第一帧,Android客户端会正确显示它。但当下一帧到来时,Android客户端崩溃。
。那你以前为什么不告诉我?你怎么可能现在用另一个名字发帖呢?您有两个帐户?如果捕获到
IllegalArgumentException
,则您的应用程序不会崩溃。
OutOfMemoryError
。你在问什么?设备内存不足,无法生成位图。我将删除编辑。因为这不是问题所在。问题是第一个错误。`String[]safe=values[26]。拆分(“”;`为什么?没有任何意义。现在,您已经在Android中尝试了所有类型的解码,现在您可以在C#中尝试不同的编码。
发送第一帧,Android客户端将正确显示它。但当下一帧到来时,Android客户端崩溃。
。那你以前为什么不告诉我?你怎么可能现在用另一个名字发帖呢?您有两个帐户?如果捕获到
IllegalArgumentException
,则您的应用程序不会崩溃。
OutOfMemoryError
。你在问什么?设备内存不足,无法生成位图。我将删除编辑。因为这不是问题所在。问题是第一个错误。`String[]safe=values[26]。拆分(“”;`为什么?没有任何意义。既然你在安卓系统中尝试了各种解码,那么现在你可以尝试用C#进行不同的编码了。
    @Override
protected Void doInBackground(Void... arg0) {


        Socket socket = null;

        try {
            socket = new Socket(dstAddress, dstPort);

            Scanner r = new Scanner(new InputStreamReader(socket.getInputStream()));

            while(true) {

                valores[26] = r.nextLine();

                publishProgress(valores[26]);
            }

    return null;

}

@Override
protected void onProgressUpdate(String... values) {

    byte[] decodedString = Base64.decode(values[26],Base64.NO_WRAP);
    Bitmap master_bitmap = BitmapFactory.decodeByteArray(decodedString,0,decodedString.length);
    master_frame.setImageBitmap(master_bitmap);

}