Problemas al Mostrar PDF

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Problemas al Mostrar PDF

Christian Giovanni Gurdian Ruiz

Tengo una aplicacion que genera un PDF, el archivo esta bien, no hay problemas al crearlo el problema es cundo quiero mostrar , se habre el archivo mero me cierra la aplicacion, ayuda

Este es el codigo

En el evento Button llamo:

closeDocumen();
openDocumenView();

donde:

public void closeDocumen(){
   document.close();
}

public void openDocumenView(){
  //pdfFile.
  if (pdfFile.exists()) {
    try {
      Uri path;
      if(Build.VERSION.SDK_INT>=24){
        Method m = StrictMode.class.getMethod("disableDeathOnFileUriExposure");
        m.invoke(null);
        path = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID ".provider",pdfFile);
      }else{
        path = Uri.fromFile(pdfFile);
      }

      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setDataAndType(path, "application/pdf");
      //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NO_HISTORY);
      context.startActivity(intent);

    }catch (RuntimeException e){
        Toast.makeText(context,
"Error : "+ e.getMessage(),
Toast.LENGTH_SHORT).show();    
    } catch (Exception es){
        Toast.makeText(context,
"Error : "+ es.getMessage(),
Toast.LENGTH_SHORT).show();
    }
  }
}

Estoy usando

implementation 'com.itextpdf:itextg:5.5.10'

El error que me manda es:

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 1106680)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.administrador.systemaautonica, PID: 16277
    java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1106680 bytes
        at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3781)
        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:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: android.os.TransactionTooLargeException: data parcel size 1106680 bytes
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:615)
        at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3636)

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/6b130c7c-1490-44aa-8e5a-9ef1ccae2a8cn%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: Problemas al Mostrar PDF

Martin-5
Hola Christian, algunas preguntas:
¿Que API leve mínimo requiere la app?
¿En que API level estas probando?
¿Donde se guarda el pdf (internal o external storage)?
¿El PDF debe abrirse en otra app que pueda visualizar el PDF?

El mié, 7 de abr. de 2021 a la(s) 19:37, Christian Giovanni Gurdian Ruiz ([hidden email]) escribió:

Tengo una aplicacion que genera un PDF, el archivo esta bien, no hay problemas al crearlo el problema es cundo quiero mostrar , se habre el archivo mero me cierra la aplicacion, ayuda

Este es el codigo

En el evento Button llamo:

closeDocumen();
openDocumenView();

donde:

public void closeDocumen(){
   document.close();
}

public void openDocumenView(){
  //pdfFile.
  if (pdfFile.exists()) {
    try {
      Uri path;
      if(Build.VERSION.SDK_INT>=24){
        Method m = StrictMode.class.getMethod("disableDeathOnFileUriExposure");
        m.invoke(null);
        path = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID ".provider",pdfFile);
      }else{
        path = Uri.fromFile(pdfFile);
      }

      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setDataAndType(path, "application/pdf");
      //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NO_HISTORY);
      context.startActivity(intent);

    }catch (RuntimeException e){
        Toast.makeText(context,
"Error : "+ e.getMessage(),
Toast.LENGTH_SHORT).show();    
    } catch (Exception es){
        Toast.makeText(context,
"Error : "+ es.getMessage(),
Toast.LENGTH_SHORT).show();
    }
  }
}

Estoy usando

implementation 'com.itextpdf:itextg:5.5.10'

El error que me manda es:

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 1106680)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.administrador.systemaautonica, PID: 16277
    java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1106680 bytes
        at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3781)
        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:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: android.os.TransactionTooLargeException: data parcel size 1106680 bytes
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:615)
        at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3636)

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/6b130c7c-1490-44aa-8e5a-9ef1ccae2a8cn%40googlegroups.com.

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/CAMsit%2BAiQwpvAO0epOmiw%2Bn%2BkK-QL_PSnSFRLLBtUe%3DuYkiXNQ%40mail.gmail.com.
Reply | Threaded
Open this post in threaded view
|

Re: Problemas al Mostrar PDF

Martin Sarabia
Al parecer existe una diferencia entre los datos parcelables que escribes y los que lees, estos parametros, puede ser que los has de estar pasando en orden diferente

El jue, 8 de abr. de 2021 a la(s) 20:11, Eduardo Martin Cabrera ([hidden email]) escribió:
Hola Christian, algunas preguntas:
¿Que API leve mínimo requiere la app?
¿En que API level estas probando?
¿Donde se guarda el pdf (internal o external storage)?
¿El PDF debe abrirse en otra app que pueda visualizar el PDF?

El mié, 7 de abr. de 2021 a la(s) 19:37, Christian Giovanni Gurdian Ruiz ([hidden email]) escribió:

Tengo una aplicacion que genera un PDF, el archivo esta bien, no hay problemas al crearlo el problema es cundo quiero mostrar , se habre el archivo mero me cierra la aplicacion, ayuda

Este es el codigo

En el evento Button llamo:

closeDocumen();
openDocumenView();

donde:

public void closeDocumen(){
   document.close();
}

public void openDocumenView(){
  //pdfFile.
  if (pdfFile.exists()) {
    try {
      Uri path;
      if(Build.VERSION.SDK_INT>=24){
        Method m = StrictMode.class.getMethod("disableDeathOnFileUriExposure");
        m.invoke(null);
        path = FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID ".provider",pdfFile);
      }else{
        path = Uri.fromFile(pdfFile);
      }

      Intent intent = new Intent(Intent.ACTION_VIEW);
      intent.setDataAndType(path, "application/pdf");
      //intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
      intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_ACTIVITY_NO_HISTORY);
      context.startActivity(intent);

    }catch (RuntimeException e){
        Toast.makeText(context,
"Error : "+ e.getMessage(),
Toast.LENGTH_SHORT).show();    
    } catch (Exception es){
        Toast.makeText(context,
"Error : "+ es.getMessage(),
Toast.LENGTH_SHORT).show();
    }
  }
}

Estoy usando

implementation 'com.itextpdf:itextg:5.5.10'

El error que me manda es:

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 1106680)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.administrador.systemaautonica, PID: 16277
    java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1106680 bytes
        at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3781)
        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:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: android.os.TransactionTooLargeException: data parcel size 1106680 bytes
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:615)
        at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:3636)

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/6b130c7c-1490-44aa-8e5a-9ef1ccae2a8cn%40googlegroups.com.

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/CAMsit%2BAiQwpvAO0epOmiw%2Bn%2BkK-QL_PSnSFRLLBtUe%3DuYkiXNQ%40mail.gmail.com.

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/CAHMy-g2mX5zpyOqM%3DpgMAKsYadaDGKoGGz1FUdfTSNzjx6YehQ%40mail.gmail.com.