Pour une raison quelconque sur Lollipop, je reçois cette erreur et puisque Lollipop est si nouveau, je ne peux pas savoir pourquoi et je n'ai aucune idée de comment le comprendre. Merci d'avance Erreur Logcat:
Java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.bent.MissionaryTracker/com.bent.MissionaryTracker.MainActivity}:
Java.lang.RuntimeException: Font asset not found helvetica.ttf
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2298)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2360)
at Android.app.ActivityThread.access$800(ActivityThread.Java:144)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1278)
at Android.os.Handler.dispatchMessage(Handler.Java:102)
at Android.os.Looper.loop(Looper.Java:135)
at Android.app.ActivityThread.main(ActivityThread.Java:5221)
at Java.lang.reflect.Method.invoke(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:372)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:899)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:694)
Caused by: Java.lang.RuntimeException: Font asset not found helvetica.ttf
at Android.graphics.Typeface.createFromAsset(Typeface.Java:190)
at com.bent.MissionaryTracker.MainActivity.onCreate(MainActivity.Java:57)
at Android.app.Activity.performCreate(Activity.Java:5933)
at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1105)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2251)
... 10 more
MODIFIER: ICI IS LE CODE QUI LANCE L'ERREUR
title = (TextView) findViewById(R.id.title);
Typeface font = Typeface.createFromAsset(getAssets(), "helvetica.ttf");
title.setTypeface(font);
J'ai helvetica.ttf dans mon dossier d'actifs dans mes dossiers de projet.
EDIT: Cette application fonctionne sur tous les appareils jusqu'à la version 5.0, donc pour une raison quelconque, 5.0 ne reconnaît pas le fichier dans mon dossier d'actifs.
J'ai essayé d'en poster une capture d'écran dans mon dossier d'actifs mais je n'ai pas assez de réputation pour poster des images.
Si vous travaillez sur Android Studio assurez-vous que votre dossier de ressources est sous principal et non rés Cela a fonctionné pour moi
Maintenant, il est préférable d'utiliser des polices personnalisées cette approche
Stockez les polices dans res/font
Pour utiliser la police de caractères:
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
J'ai aussi eu ce problème avant de réaliser que je n'avais pas mis "fonts /" avant le fichier .otf
Typeface font = Typeface.createFromAsset(getAssets(),"fonts/TTMastersDEMOBlack.ttf");
Cela a fonctionné pour moi. Dans mon cas, cela n'a pas fonctionné car j'ai créé le dossier des ressources en res et non en principal.
Si le changement de répertoire ne fonctionne pas, cela pourrait être dû à un problème déjà résolu par l'équipe Android mais qui ne l'a pas fait à temps pour 5.0. Tout est expliqué ici:
https://code.google.com/p/Android-developer-preview/issues/detail?id=608&thanks=608&ts=1404735239
La solution de contournement (du moins c'était pour moi) est de corriger les fichiers de police avec TTX comme mentionné dans le problème lié.
Faire fonctionner TTX peut être un peu compliqué si vous n'avez aucune expertise python donc j'ai fini par télécharger AFDKO d'Adobe qui inclut TTX. Vous devez exécuter 'ttx yourfontfile.ttf 'qui transformera votre fichier en .ttx puis le réexécutera' ttx yourfontfile.ttx 'pour obtenir un nouveau .ttf qui fonctionne avec 5.0.
Placez simplement un dossier de ressources dans le répertoire principal. Après cela:
Typeface typeface=Typeface.createFromAsset(getAssets(),"OpenSans-Light.ttf");
textView.setTypeface(typeface);
Nettoyez le projet, cela m'a aidé sur Android 6.0
J'ai déjà rencontré ce problème. J'ai supprimé x.ttf, puis j'ai annulé la suppression et j'ai essayé de l'exécuter sans verrou. Donc, mon correctif consistait simplement à le supprimer et à télécharger à nouveau la police et à la coller dans les polices/dossier et tout fonctionnait bien.
Ok les gars,
J'ai rencontré le même problème. Tout d'abord, j'ai rendu ma logique de chargement de polices à l'épreuve des plantages:
/**
* Init method. This method must be called before any other call in this class.
*/
public static void init () {
fontPlain = createFont( "helvetica.ttf" , Typeface.NORMAL );
fontBold = createFont( "helveticab.ttf", Typeface.BOLD );
}
/**
* Load font from assets font folder.
*/
public static Typeface createFont (String font, int style) {
Typeface typeface;
try {
AssetManager assets = Kit.getAppContext().getAssets();
typeface = Typeface.createFromAsset( assets, "fonts" + File.separator + font );
}
catch (RuntimeException e) {
// createFromAsset() will throw a RuntimeException in case of error.
Log.e( Constants.TAG, "Unable to create font: " + font, e );
typeface = Typeface.defaultFromStyle( style );
}
return typeface;
}
Et puis j'ai aussi téléchargé une autre police de ce projet dans git:
https://github.com/dimanchec3/Tutoriapps-Android/blob/master/assets/Helvetica.ttf
J'ai réalisé que mon ancienne police était de 56 Ko et cette nouvelle police de 84 Ko. Je suppose que j'avais une ancienne version de la police.
Veuillez vous assurer que vous disposez de la licence appropriée avant d'utiliser cette police.