SORU
12 Temmuz 2012, PERŞEMBE


Ne TransactionTooLargeException yapmak

App bir TransactionTooLargeException içinde hata parça aldım. Tekrarlanabilir ve daha önce hiç yoktu. Doktorlar yazıyor

Bağlayıcı işlem çok büyük başarısız.

Bir uzaktan yordam çağrısı sırasında, bağımsız değişkenleri ve dönüş değeri Parsel nesneleri Bağlayıcı işlem arabellek içinde saklı olarak aktarılır. Eğer bağımsız değişken ya da dönüş değeri işlem tampon sığmayacak kadar büyük ise, daha sonra arama başarısız olur ve TransactionTooLargeException atılır.

...

Uzaktan yordam çağrısı TransactionTooLargeException attığında iki olası sonucu vardır. Ya müşteri alamadı gönder isteğine hizmeti (büyük olasılıkla eğer argümanlarınız çok büyük bir uyum içinde hareket arabellek), veya hizmet alamadı gönder yanıtı geri istemci (büyük olasılıkla eğer dönüş değeri çok büyük bir uyum içinde hareket arabellek).

...

Yani, Tamam, bir yere ya da bazı bilinmeyen sınırı aşan tartışmalar geçen alıyorum. Ama nerede?

Stacktrace benim dosyalardan bir şey göstermiyor

java.lang.RuntimeException: Adding window failed
at android.view.ViewRootImpl.setView(ViewRootImpl.java:548)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:406)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:320)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:152)
at android.view.Window$LocalWindowManager.addView(Window.java:557)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2897)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4977)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:569)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:538)
... 16 more
android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:569)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:538)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:406)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:320)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:152)
at android.view.Window$LocalWindowManager.addView(Window.java:557)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2897)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4977)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

Tüm Pencere / satır Görünümü nedeniyle görünümleri ile ilgili gibi görünüyor? Nasıl bu uzaktan yordam çağrısı bir ilgisi var mı? Nasıl bu hatanın nedeni bakabilir miyim?

Sadece web hizmetleri kullanıyorum app, Hizmet sınıfı kullanmıyorum, "uzaktan yordam" ya da başka ne olabilir...? çağrı, web hizmetleri vardır

Şimdiden teşekkürler...

P. S. önemli değil Belki: Android sürümü: 4.0.3, Aygıt: X HTC One

CEVAP
9 EKİM 2012, Salı


Bu sorunla karşılaştım ve ne zaman veri hizmeti ve bir uygulama arasında değişin, miktarı(Bu küçük bir sürü aktarma içerir) büyük bulunmuştur. Aslında veri boyutu 500kb ve Tampon boyutu 1024KB ayarlanır IPC hareket olmuş. İşlem arabellek aştı neden emin değilim.

Bu da niyet ekstralar ile verilerin çok geçirdiğinizde ortaya çıkabilir

Başvurunuzda bu durum olduğunda, lütfen kodunuzu analiz eder.

  1. Hizmetleri ve uygulama arasında veri alışverişi çok misin?
  2. Kullanarak büyük veri, (örneğin, Galeri payı basın dosyaları, Kullanıcının seçtiği çok sayıda paylaşımı, seçilen dosyaların bu Kodu kullanarak hedefleri aktarılacaktır) paylaşım için niyet
  3. bit eşlem alma servisinden dosyaları
  4. android için geri büyük veri ile yanıt bekleyen kullanıcı uygulamaları çok) yüklü olduğunda (örneğin, getİnstalledApplications ()
  5. applyBatch() kullanarak işlemleri bekleyen çok

Nasıl bu durum zaman işlemek için

Mümkünse, büyük operasyon applyBatch aramak yerine küçük parçalar için, örneğin, split() 1000 operasyon ile, 100'er ile ara.

Exchange değil büyük veri (>1MB) hizmetleri arasında ve uygulama

Bunu yapmak için nasıl bilmiyorum, ama, büyük veri dönebilirsiniz android, sorgu yok :-)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cartoonium

    Cartoonium

    11 NİSAN 2011
  • LiteralMSPaint

    LiteralMSPai

    27 EKİM 2010
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006