SORU
7 EKİM 2012, Pazar


"yapılamaz, yazı tipi" Yerli; sadece bazı insanlar için

Bazı elemanları için yazı tipi yazı tipi değiştiren bir uygulama var. İnsanların çoğu, ama belki 0.5% yazı tipini değiştirmek için çalışırken bir istisna almak için iyi çalışıyor. Yığın izleme önemli bir parçasıdır bu

Caused by: java.lang.RuntimeException: native typeface cannot be made
at android.graphics.Typeface.<init>(Typeface.java:147)
at android.graphics.Typeface.createFromAsset(Typeface.java:121)

Dediğim gibi, insanların çoğu için çalışır, yazı tipi dosyası ile ilgili bir sorun ya da benim kod olduğunu sanmıyorum. Bunu çözmek için nasıl hakkında herhangi bir öneriniz var mı?

Düzenleme:Bu benim kod:

Typeface phoneticFont = Typeface.createFromAsset(getAssets(),
                                                 "fonts/CharisSILR.ttf");
TextView tv;
tv = ((TextView) findViewById(R.id.searchPronunciationTitle));
tv.setTypeface(phoneticFont);

CEVAP
26 EKİM 2012, Cuma


Android işletim sistemi bu hata senin sorunun sebebi olabilir:

Typeface.createFromAsset leaks asset stream

Ayrıca bu bugreport: geçici bir çözüm

Yöntem yazı tipi kabul etmez böylece HTH geçici çözüm değiştirdim yolu ya da biçimi. Yazı tipi varlığın tam yol verilmelidir bir parametre. Ben de createFromAsset çağrısı sarılmış() eğer ki try-catch bloğu() yöntemi, varlığın null döndürür ise bulunamadı.

public class Typefaces {
    private static final String TAG = "Typefaces";

    private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();

    public static Typeface get(Context c, String assetPath) {
        synchronized (cache) {
            if (!cache.containsKey(assetPath)) {
                try {
                    Typeface t = Typeface.createFromAsset(c.getAssets(),
                            assetPath);
                    cache.put(assetPath, t);
                } catch (Exception e) {
                    Log.e(TAG, "Could not get typeface '"   assetPath
                              "' because "   e.getMessage());
                    return null;
                }
            }
            return cache.get(assetPath);
        }
    }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • SegaAmerica

    SegaAmerica

    5 Mart 2008