2013-04-02 24 views
13

Ben uygulamalar bir sürü benim app bu kodla etkinlik bilgisi toplar zaman o problemleri olduğu yüklü olan bir kullanıcı posta aldım:Paket yöneticisi öldü

getPackageManager().queryIntentActivities(mAinIntent, 0) 

bütün kaynak burada: https://github.com/ligi/FAST

Bu

Caused by: java.lang.RuntimeException: Package manager has died 
at android.app.ApplicationPackageManager.queryIntentActivities(ApplicationPackageManager.java:479) 
at org.ligi.fast.BaseAppGatherAsyncTask.doInBackground(BaseAppGatherAsyncTask.java:34) 
at org.ligi.fast.BaseAppGatherAsyncTask.doInBackground(BaseAppGatherAsyncTask.java:1) 
at android.os.AsyncTask$2.call(AsyncTask.java:287) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
... 5 more 
Caused by: android.os.TransactionTooLargeExceptionTransactionTooLargeException 
at android.os.BinderProxy.transact(Native Method) 
at android.content.pm.IPackageManager$Stub$Proxy.queryIntentActivities(IPackageManager.java:2230) 
at android.app.ApplicationPackageManager.queryIntentActivities(ApplicationPackageManager.java:473) 
... 9 more 
Log: 
0 D: Writing unhandled exception to: /data/data/org.ligi.fast/files/3.7-1364933885194.tracedroid 

orada 1mb sınırına karşı çalıştırıyorum bir sorun gibi görünüyor, ama nasıl çık oradan ne olduğudur? Gerekli bilgiyi başka nasıl alabilirim? Verileri parçalamak için bir yol var mı?

+1

Bu "TransactionTooLargeExceptionTransactionTooLargeException" bir yazım hatası mı? [Buna bakın] (http://developer.android.com/reference/android/os/TransactionTooLargeException.html) * Binder işlem arabelleği şu anda 1Mb olan sınırlı bir sabit boyuta sahiptir ve bu süreçte devam eden tüm işlemler tarafından paylaşılır. . Sonuç olarak, tek tek işlemlerin çoğu orta boyutta olsa bile devam eden birçok işlem olduğunda bu istisna atılabilir. * – t0mm13b

+0

'AppInfo' sınıfı,' özel BitmapDrawable simgesi; Çok fazla bellek yiyorlar mı? Neden AsyncTask'ın içinden çok sayıda "Contexts" kopyasını geçiriyorsunuz? – t0mm13b

+0

yea - c & p'o gibi görünüyor - bu nasıl iki katına çıktı. Problem için bir çözüm görüyor musunuz? – ligi

cevap

5

Aynı kullanıcı girdisiyle bir süre önce bu hatayı inceledim. Atılmış olayım farklı olsa da. İstisnaı yakalamak ve kullanıcıyı raporlama becerisine sahip çok fazla uygulama olduğunu inceleyerek sonlandırdım. Birkaç yüz bin yüklemeden sadece bu hatayı bir proje için beş kattan daha az bir süre gördüm, bunun bir bahane olmadığını biliyorum, ancak bazı cihazların yüklü her bir uygulamanın amaçlarını indeksleme işleminin üstesinden gelmek için yığını yok. cihazda.

İlgili konular