Android.os.TransactionTooLargeException recuperar aplicaciones instaladas

Estoy recuperando todas las aplicaciones instaladas en el dispositivo y me tropecé con este error.

java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:300) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:811) Caused by: java.lang.RuntimeException: Package manager has died at android.app.ApplicationPackageManager.queryIntentActivitiesAsUser(ApplicationPackageManager.java:499) at android.app.ApplicationPackageManager.queryIntentActivities(ApplicationPackageManager.java:485) at com.name.package.MyClass$RetrieveApps.doInBackground(MyClass.java:363) at com.name.package.MyClass$RetrieveApps.doInBackground(MyClass.java:1) at android.os.AsyncTask$2.call(AsyncTask.java:288) at java.util.concurrent.FutureTask.run(FutureTask.java:237) ... 4 more Caused by: android.os.TransactionTooLargeException at android.os.BinderProxy.transact(Native Method) at android.content.pm.IPackageManager$Stub$Proxy.queryIntentActivities(IPackageManager.java:2165) at android.app.ApplicationPackageManager.queryIntentActivitiesAsUser(ApplicationPackageManager.java:493) ... 9 more 

En el método doInBackground () utilizo este código para recuperar las aplicaciones instaladas.

  PackageManager packageManager = getPackageManager(); List<ResolveInfo> mResolveInfo; Intent queryIntent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER); mResolveInfo = packageManager.queryIntentActivities(queryIntent, 0); for (ResolveInfo ri : resolveInfos) { Class class = new Class(); class.icon = ri.loadIcon(packageManager); class.label = ri.loadLabel(packageManager); class.packagename = ri.activityInfo.packageName; class.packageclass = ri.activityInfo.name; class.componentName = new ComponentName(class.packagename, class.packageclass); Intent i = new Intent(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_LAUNCHER); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); i.setComponent(ai.componentName); class.intent = i; myArrayList.add(class); 

La línea donde se produce el accidente es la siguiente:

 mResolveInfo = packageManager.queryIntentActivities(queryIntent, 0); 

Lectura de desbordamiento de pila Entiendo que esto puede deberse al hecho de que tiene muchas aplicaciones instaladas. La pregunta ahora es, ¿cómo se puede resolver? ¿Hay alguna solución? En caso afirmativo, ¿cuál? Gracias.

Estoy buscando la misma solución. ¿Hay alguna manera de hacer una lista parcial de aplicaciones instaladas?

Tengo el mismo problema en mi aplicación.

 List<PackageInfo> packs = pm.getInstalledPackages(0); 

Si el usuario tiene un gran número de aplicaciones, obtengo esto en logcat:

Causado por: java.lang.RuntimeException: El administrador de paquetes ha muerto en android.app.ApplicationPackageManager.getInstalledPackages (ApplicationPackageManager.java:424)

Causado por: android.os.TransactionTooLargeException en android.os.BinderProxy.transact (Método nativo) en android.content.pm.IPackageManager $ Stub $ Proxy.getInstalledPackages (IPackageManager.java:2363)

¡Actualizar!

Pude averiguar un camino. Vea esta respuesta que di en otro post:

El gestor de paquetes ha muerto

  • Exhibición de la secuencia de la Cadena de Android Signo de porcentaje
  • Android Studio activity_main.xml editor de diseño no me deja arrastrar y soltar nada ...?
  • Implementación de la paginación en formato de libro HTML
  • Android paquete / nombre de la clase en la disposición XML?
  • Android sdk main.out.xml error de análisis?
  • ¿Cómo podemos cambiar el icono de la aplicación Android de forma dinámica en Android
  • Android Retrofit 2 Simple XML Converter
  • Icono de elemento del cajón de navegación que no muestra el color original
  • Hacer AppBarLayout responder a desplazamiento en WebView
  • Mi proyecto de Android ha duplicado las declaraciones entre Enum y string.xml
  • InflateException: Línea de archivo XML binario # 1: Error de inflar clase <unknown> causada por OutOfMemoryError
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.