web-dev-qa-db-fra.com

Actif de police Android Runtime Exception introuvable

Voici mon code et ma capture d'écran. J'essaie de définir une police de caractères personnalisée, mais une exception d'exécution survient. L'actif de la police est introuvable lorsque le fichier de police est dans le dossier de l'actif. Est-ce que je manque quelque chose?

Typeface font = Typeface.createFromAsset(getAssets(), "font/terminal.ttf");
((TextView) findViewById(R.id.weatherHeadingTV)).setTypeface(font);

enter image description herescreenshot of Android studio project

10
Muzammil Husnain

J'ai essayé un autre fichier de police qui a bien fonctionné. Je conclus donc que le fichier de police précédent était corrompu. Merci @Miduhun MP, @Gowtham Raj et @jagan Reddy

1
Muzammil Husnain

le nom du dossier doit être 'fonts' pas 'font'

Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/" + font);
8
Gowtham Raj

Votre dossier d'actif de police n'est pas nommé correctement. Vous devez nommer le dossier fonts et non font. Changez aussi votre code:

Typeface font = Typeface.createFromAsset(getAssets(), "fonts/terminal.ttf");
4
Midhun MP

Si vous utilisez Instant Run avec le plugin Android Gradle version 2.2.0-alphaX, il s'agit d'un bogue connu.

Une solution de contournement consiste à désactiver Instant Run jusqu'à ce que le problème soit résolu.

Vous pouvez le suivre ici: https://code.google.com/p/Android/issues/detail?id=212849&can=1&q=subcomponent%3DTools-Studio%20-has%3Aproject%20attachments%3D0&colspec=ID% 20Status% 20Priority% 20Owner% 20Summary% 20Stars% 20Reporter% 20Opened & start = 7700

3
Laurențiu Onac
  1. Le nom du dossier doit être "polices" et non "police"
  2. Notez que votre dossier "polices" se trouve dans votre dossier "assets" (qui devrait se trouver dans votre dossier "principal" et non dans votre dossier "res")
3
Tiferet Cohen

Erreur courante lorsque vous avez des actifs dans votre projet et que vous utilisez les versions alpha d'AS. Cela semble être un bug dans le système de construction de studio Android. Une solution simple consiste à nettoyer le projet avant de l'exécuter, ce qui devrait résoudre le problème auquel vous êtes confronté.

2
Jishin Dev

J'ai eu le même problème et j'ai réussi à le réparer. À l'origine, je pensais que les fichiers de polices étaient corrompus, mais ils ne l'étaient pas. Ensuite, j'ai pensé qu'Android Studio n'aimait pas les fichiers .ttf, car ils étaient les seuls à ne pas fonctionner. Il s'avère qu'il n'y a rien de mal avec les polices.

CORRECTIF: cliquez simplement sur Build > Clean project. J'ai tout de suite résolu le problème pour moi.

1
Will

Typeface typeface = Typeface.createFromAsset (this.getAssets (), "font/terminal.ttf");

((TextView) findViewById (R.id.weatherHeadingTV)). SetTypeface (police de caractères);

0
jagan reddy

Pour moi, le fichier de police lui-même était corrompu. J'ai essayé un autre pour le faire fonctionner. 

0
Bilal Halayqa

Si vous utilisez AndroidAnnotations, dans l'application build.gradle, vérifiez si le dossier des actifs est correct: ex: main/src/assets.

Si vous changez de police, désinstallez votre application de votre appareil/émulateur et exécutez-le à nouveau.

Code: 

public static void setFontFace(Context context, TextView textView) {
  Typeface type = Typeface.createFromAsset(context.getAssets(), "myfont.ttf");
  textView.setTypeface(type);
}
0
Pierry

J'ai eu le problème que les polices .woff ne sont pas acceptées sur Android 7+. Je suis donc passé aux polices .ttf.

0
bremen_matt