Problema cuando se usa una fuente personalizada: “no se puede hacer la tipografía nativa”

Intento usar una fuente que encontré en Internet, pero el problema es que obtengo una FC con “la tipografía nativa no se puede hacer”.

Aquí está el código en el getView de mi ListVIew:

holder.tv_SuraName =(TextView)convertView.findViewById(R.id.Start_Name); holder.tv_SuraName.setTypeface(Typeface.createFromAsset(mContext.getAssets(), "suralist_font.ttf")); 

¿Alguien puede decirme por qué puedo usar la rom personalizada? Puedes obtenerlo AQUÍ … el archivo es .ttf

El archivo de fuente está dañado o no es compatible por algún motivo. Puede soltarlo en la tarjeta SD y cargarlo desde el archivo, para asegurarse de que no sea un problema con sus activos.

Mi problema fue la ubicación incorrecta de la carpeta de activos.

Al usar Android Studio, la carpeta de activos debe estar dentro de los conjuntos fuente, por ej.

src / main / assets /

Encontrado en esta respuesta

Básicamente hay 4 cosas que pueden causar esto:

  1. Usas la extensión incorrecta
  2. Debe colocar las fonts en la carpeta assets y no dentro de assets / fonts /
  3. Escribiste mal las fonts
  4. Las fonts deben ser minúsculas (en mi caso, la solución fue cambiar el nombre de MyFont.ttf a myfont.ttf, extraño)

Verifique dos veces que la extensión no está en mayúsculas, es decir. suralist_font.TTF

Las fonts a menudo parecen venir de esa manera y pueden pasarse por alto.

Tuve el mismo problema, creé el mío en assets> fonts> whatever.ttf y recibía el mismo error. Agregué la extensión de fonts (fonts / whatever.ttf) y solucionó el problema en todos los casos.

  holder.tv_SuraName =(TextView)convertView.findViewById(R.id.Start_Name); holder.tv_SuraName.setTypeface(Typeface.createFromAsset(mContext.getAssets(), "fonts/suralist_font.ttf")); 

Bastante viejo hilo, pero quiero agregar una razón más para que esto suceda: debes establecer la vista del contenido antes de llamar al tipo de letra. Ver ejemplo a continuación

No funciona:

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView title = (TextView)findViewById(R.id.tvTitle); Typeface font = Typeface.createFromAsset(this.getAssets(), "fonts/whatever.ttf"); title.setTypeface(font); setContentView(R.layout.main); } 

¡Funciona!

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // < -- call before typeface TextView title = (TextView)findViewById(R.id.tvTitle); Typeface font = Typeface.createFromAsset(this.getAssets(), "fonts/whatever.ttf"); title.setTypeface(font); } 

Estoy usando android studio, en mi caso el problema fue con la ruta de la carpeta assets, en la carpeta Eclipse path for assets está res / assets / pero en Android Studio es src / main / assets / Así que, simplemente muevo mi archivo de fuente a este camino y finalmente problema resuelto.

O bien el archivo de la fuente está dañado, de lo contrario comete un error ortográfico al llamar a su nombre de archivo. Tuve el mismo problema, fue porque el nombre de archivo especificado en la carpeta de activos era

roboto_black.ttf

y mientras declaro en el archivo java, he deletreado como:

roboto_blak.ttf

Si tus archivos .ttf están en la carpeta de activos, utiliza:

 Typeface type_bold = Typeface.createFromAsset(getAssets(), "roboto_black.ttf"); 

Si está en la carpeta de fonts, use:

 type_bold = Typeface.createFromAsset(getAssets(), "fonts/roboto_black.ttf"); 

¡Espero eso ayude!

Espero que esto ayude

Typeface.createFromAsset filtra la stream de activos: http://code.google.com/p/android/issues/detail?id=9904

Como dice CommonsWare en esta respuesta

Supongo que hay un problema con la fuente en sí. Ese error se activará cuando el código nativo en el sistema operativo intente cargar el tipo de letra.

De todos modos prueba este:

 holder.tv_SuraName = (TextView)convertView.findViewById(R.id.Start_Name); Typeface Font = Typeface.createFromAsset(this.getAssets(),"suralist_font.ttf"); holder.tv_SuraName.setTypeface(Font); 

Tuve el mismo problema con COMIC.TTF de comics sans ms de Windows. Como el archivo original que coloqué en la carpeta assets / fonts estaba en mayúsculas, como he escrito anteriormente, tuve que escribirlo exactamente en mayúsculas. Typeface.createFromAsset (getAssets (), “fonts / COMIC.TTF”);

resulta que el problema fue causado por la minúscula: Typeface.createFromAsset (getAssets (), “fonts / comic.ttf”);

Tenga en cuenta que esto se debe a un archivo dañado o a haber colocado el archivo en la carpeta incorrecta.

De acuerdo con la documentación de Android aquí

main / assets / Esto está vacío. Puede usarlo para almacenar archivos de activos sin procesar. Los archivos que guarde aquí se comstackn en un archivo .apk tal como está, y se conserva el nombre del archivo original. Puede navegar por este directorio de la misma manera que un sistema de archivos típico usando URI y leer archivos como una secuencia de bytes usando AssetManager. Por ejemplo, esta es una buena ubicación para texturas y datos de juegos.

Por lo tanto, la estructura de su carpeta debe ser su módulo / principal / activos (por ejemplo, un *** pp / main / assets ***)

Lo que funcionó para mí fue cambiar primero el nombre de mi fuente a minúsculas y guiones bajos: de Amatic-Sc.ttf a amatic_sc.ttf .

Luego, en el método set.TypeFace, cambie assets / fonts / amatic_sc.ttf a solo fonts / amatic_sc.ttf .

He estado depurando para siempre este error en Android Studio. Limpiar y reconstruir el proyecto después de agregar las fonts al directorio de activos me solucionó el problema.

Acabo de build --> clean y comenzó a renderizar.

Tuve el mismo problema que sucedió en Android 4.0.3-4.0.4 (100% reproducible en el emulador IceCreamSandwich mips 4.0.3).

El problema era que las fonts TTF, que tenía, no eran correctas, a pesar de que casi todas las versiones de Android podían cargar esas fonts TTF. Así que utilicé https://cloudconvert.com/woff-to-ttf (ya que también tenía archivos woff) para crear nuevas fonts TTF, lo que resolvió mi problema.