我知道这个问题已被问过很多次但我无法找到正确的解决方案。我在这里做的是服务器上总共有7个图像。服务器获取其中每个内容,然后将其转换为base64。然后它将这些字符串中的每一个逐个发送回android客户端。以下是代码:
StringRequest stringRequest = new StringRequest(Request.Method.POST, my_url,
new Response.Listener<String>() {
LinearLayout layout = (LinearLayout)findViewById(R.id.linearView);
int index=0;
@Override
public void onResponse(String s) {
//Disimissing the progress dialog
loading.dismiss();
//Showing toast message of the response
// Toast.makeText(DisplayResults.this, s, Toast.LENGTH_LONG).show();
System.out.println("nofatima"+s);
ImageView layout = (ImageView)findViewById(R.id.m0);
byte[] decodedString = Base64.decode(s.replace("/",""), Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
layout.setImageBitmap(decodedByte);
layout.setImageBitmap(Bitmap.createScaledBitmap(decodedByte, decodedByte.getWidth(), decodedByte.getHeight(), false));
这是服务器返回的Base64
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBAQFBAYFBQYJBgUGCQsIBgYICwwKCgsKCgwQDAwMDAwMEAwODxAPDgwTExQUExMcGxsbHB8fHx8fHx8fHx//2wBDAQcHB
当然有更多的字符串,但我不是在这里添加整个字符串。这是我得到的错误
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.fatima.cgir, PID: 6811
java.lang.IllegalArgumentException: bad base-64
at android.util.Base64.decode(Base64.java:161)
at android.util.Base64.decode(Base64.java:136)
at android.util.Base64.decode(Base64.java:118)
at com.example.fatima.cgir.DisplayResults$1.onResponse(DisplayResults.java:91)
at com.example.fatima.cgir.DisplayResults$1.onResponse(DisplayResults.java:76)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
我确实意识到这个例外是因为我正在替换&#34;&#34;但是当我不添加此语句时,它会返回null异常。我猜的是因为它没有被正确解码。可能是什么问题?