web-dev-qa-db-fra.com

java.lang.IllegalArgumentException: ce composant nécessite la spécification d'un attribut Android: textAppearance valide.

J'ai un composant com.google.Android.material.button.MaterialButton dans l'un de mes fichiers de présentation et j'obtiens cette erreur lorsque j'utilise la dernière version de la bibliothèque de composants de matériau (com.google.Android.material: material: 1.0 .0-alpha3):

Java.lang.IllegalArgumentException: ce composant nécessite la spécification d'un attribut Android: textAppearance valide.

Il n'était pas présent dans 1.0.0-alpha1. S'agit-il d'un bogue dans la bibliothèque ou devrais-je simplement spécifier un attribut textAppearance à partir de maintenant?

9
Roland Szép

Votre thème s'étend-il de Theme.MaterialComponents? Plus d’informations sur la manière de s’assurer que tous les composants fonctionneront correctement sont disponibles à l’adresse https://material.io/develop/Android/docs/getting-started/

25
Cameron Ketcham

Si vous utilisez l'un des composants MaterialComponent, votre thème doit alors en être étendu "Theme.MaterialComponents.Light.DarkActionBar"

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>
9
sodiqOladeni

J'ai eu le même problème, j'ai changé mon thème d'activité mais cela n'a pas résolu le problème. J'ai modifié mon thème principal d'application d'AppCompact à Theme.MaterialComponents.

<application
    Android:allowBackup="true"
    Android:fullBackupContent="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme2">
<activity
        Android:name=".MainActivity"
        Android:label="@string/app_name"/>
</application>
0
KhanStan99