J'utilise Androidx bibliothèque pour mon projet, et je veux définir une police à textview, donc quand j'applique une police à n'importe laquelle - Textview composants que le système me donne
TypefaceCompatApi21Impl: Java.lang.NoSuchMethodException Java.lang.NoSuchMethodException: addFontWeightStyle [classe Java.lang.String, int, boolean]
ce type d'erreur lors de l'exécution, mais l'application ne se bloque pas.
Alors, comment surmonter cette erreur.
Remarque: Cela fonctionnera correctement sans Android x dépendance.
En dessous de mon code:
<androidx.appcompat.widget.AppCompatTextView
Android:id="@+id/menu_tv_title"
style="@style/font_work_sans_medium"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_gravity="center"
Android:maxLines="1"
Android:ellipsize="end"
Android:paddingEnd="@dimen/_12sdp"
Android:paddingStart="@dimen/_12sdp"
Android:textColor="@Android:color/black"
Android:textSize="17sp"
Android:gravity="center"
tools:text="title"
tools:visibility="gone"/>
Voici le style
<style name="font_work_sans_medium" parent="@Android:style/TextAppearance.Small">
<item name="Android:fontFamily">@font/work_sans_medium</item>
</style>
Je mets également la police par par programme comme ceci
var typeFace: Typeface? = ResourcesCompat.getFont(context, R.font.work_sans_bold)
getTitleView().setTypeface(typeFace, Typeface.NORMAL)
toujours cette erreur
Avez-vous essayé de supprimer le dernier paramètre lorsque vous définissez la police par programmation?
getTitleView().setTypeface(typeFace)
au lieu de
getTitleView().setTypeface(typeFace, Typeface.NORMAL)
utilise en interne fontStyle
Votre parent de style est @Android:style/TextAppearance.Small
cliquez dessus. Vous ne verrez que deux articles
<item name="textSize">14sp</item>
<item name="textColor">?textColorSecondary</item>
L'erreur est donc correcte. ce style n'a pas de propriété fontFamily
à l'intérieur.
essayez de changer votre thème parent en
<style name="font_work_sans_medium" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<item name="Android:fontFamily">@font/work_sans_medium</item>
</style>