Как исправить ошибку «Unable to Marshal Value» - PullRequest
0 голосов
/ 24 сентября 2019

Когда я пытаюсь открыть Галерею из моего приложения для Android одним нажатием кнопки.Это исключение "Unable to marshal value".Ниже приведен код, который дает мне ошибку.

При первой попытке не возникает ошибки при открытии галереи.После нескольких щелчков, если я перехожу к этому конкретному фрагменту и нажимаю на значок «Выбрать изображение», он выдает ошибку.

    if (requestCode == REQUEST_CODE_GALLERY){
        if(grantResults.length>0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
            Intent intent = new Intent(Intent.ACTION_PICK);
            intent.setType("image/*");
            startActivityForResult(intent, REQUEST_CODE_GALLERY);

        }
        else {
            Toast.makeText(getContext(),"Permission not Enabled", Toast.LENGTH_SHORT).show();
        }
        return;
    }
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    if(requestCode == REQUEST_CODE_GALLERY && resultCode == RESULT_OK  && data != null){
        Uri uri = data.getData();

        try {
            InputStream inputStream = getActivity().getApplicationContext().getContentResolver().openInputStream(uri);

            bitmap = BitmapFactory.decodeStream(inputStream);
            productImage.setImageBitmap(bitmap);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }

    super.onActivityResult(requestCode, resultCode, data);
}

Я получаю ошибку:

E / AndroidRuntime:ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.example.smartdisplay, PID: 24822 java.lang.RuntimeException: Parcel: невозможно указать значение com.example.smartdisplay.DisplayData@bb07760 в android.os.Parcel.writeValue (Parcel.java:1508) на android.os.Parcel.writeList (Parcel.java:820) на android.os.Parcel.writeValue (Parcel.java:1455) на android.os.Parcel.writeArrayMapInternal (Parcel.java:732) на android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1423) в android.os.Bundle.writeToParcel (Bundle.java:1133) в android.os.Parcel.writeBundle (Parcel.java:772) в androidx.fragment.app.FragmentState.writeToParcel (FragmentState.java:124) в android.os.Parcel.writeTypedArray (Parcel.java:1338) в androidx.fragment.app.FragmentManagerState.writeToParcel (FragmentManager.java:639) в android.os.Parcela.el.java:1527) в android.os.Parcel.writeValue (Parcel.java:1433) в android.os.Parcel.writeArrayMapInternal (Parcel.java:732) в android.os.BaseBundle.writeToParcelInner (BaseBundle.java:1423) на android.os.Bundle.writeToParcel (Bundle.java:1133) на android.os.Parcel.writeBundle (Parcel.java:772) на android.app.ActivityManagerProxy.activityStopped (ActivityManagerNative.java:3685) на android.app.ActivityThread $ StopInfo.run (ActivityThread.java:3865) на android.os.Handler.handleCallback (Handler.java:754) на android.os.Handler.dispatchMessage (Handler.java:95) на android.os.Looper.цикл (Looper.java:165) в android.app.ActivityThread.main (ActivityThread.java:6375) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.выполнить (ZygoteInit.java:912) на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:802) I / Процесс: отправка сигнала.PID: 24822 SIG: 9 Приложение прекращено.

Что мне не хватает?

...