2013-07-12 15 views
9

Çok fazla animasyon yapan ve çok sayıda resim indiren bir uygulama geliştiriyoruz. işlemlerin belirli bir miktar (öngörülebilir sayı) sonra, uygulama, hata ile kilitleniyor:A/Looper: Uyanma borusu oluşturulamadı. errno = 24

A/Looper: Could not create wake pipe. errno=24 

Biz kodunda Looper kullanmayın, ama kütüphanelerin birkaç kullandığımız kullanıyorsunuz Looper:

  1. ActionBarSherlock: Bu suçlu olduğunu düşünmüyorum
  2. facebook: Bu suçlu
  3. nineoldandroid olduğunu düşünmüyorum: Bu animasyon kütüphanesi suçlu olabilir
  4. voleybolu: Bu suçlu

herhangi vücudun bu kütüphanelerini herhangi biriyle bu Looper hatayla karşılaştı Has olabilir ve nasıl tamir edildiğini bilen: Bu muhtemelen suçlu

  • Picasso?

  • cevap

    6

    Sorun Picasso lib. Bunu istenen şekilde kullanmıyorduk. Picasso kurucusunun bir kopyasını tutuyorduk.

    Biz her zaman bizim için

    Picasso.with(Context).load(Url).into(ImageView) 
    
    +0

    Bunu biraz daha ayrıntılı olarak açıklayabilir misiniz? Aynı meseleye sahibiz, ancak biz inşaatçının referansını tutmuyoruz. Picasso sınıfının bir örneğini, yöntemle oluşturulmuş içsel tekli olarak tutmayız. –

    +0

    Genel singleton, örneğini oluşturmak için oluşturucuyu kullanır; bu, kendi örneğinizi kullanmaktan farklı değildir. Picasso'yu, bu sorunu görmeden özel bir örnek kullanarak milyonlarca cihaza dağıttık. –

    +0

    Ya kapanma yöntemini (açıklanamayan, yalnızca varsayılan olmayan tekilde kullanılabilir) veya Picasso'nun etrafında asılı iki veya daha fazla örneği olup olmadığına bakılmaksızın olabilir mi? –

    3

    kullanarak bu sorunu kaçınılması, Sorun, Picasso'nun iki farklı örnekleri ortalıkta olduğu gerçeği idi. Özel bir örnek oluşturmak için oluşturucuyu kullanır ancak uygulamanızın başka bir yerinde başka bir örnek oluşturulmadığından emin olursanız, bu sorun görünmemelidir.

    +0

    Gerçekten de, yalnızca bir örneğiniz olması gerektiği gibi görünür. Yani, uygulamanız için bir tane gerekiyorsa kendi sarmalayıcı Tektonunuzu oluşturmalısınız. Aslında bu, with() yönteminin kendi kitaplığında ne yaptığıdır. (Bağlam bağlamında) ile ortak statik Picasso { (tekil == null) { senkronize halinde (Picasso.class) { halinde (tekil == null) { tekil = Yeni Oluşturucu (içerik) .build(); } } tekil dönüş; } – markshiz

    +1

    Birden çok örnek düzgün ve bunun nedeni değil. Oluşturulanları tekrar etmeyerek binlerce örnek oluşturuyorsanız, bu muhtemelen gerçekleşecektir. –