InflateException avec TextInputLayout et AlertDialog
J'essaie d'utiliser le plus récent TextInputLayout dans mon DialogFragment.
Voici mon code:
<android.support.design.widget.TextInputLayout
android:id="@+id/testingInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/testingEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/testText"
android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
Quelques informations de base:
- L'activité qui lance l'DialogFragment dérive de AppCompatActivity
- La DialogFragment dérive de Android.De soutien.V4.App.DialogFragment
- - Je construire le DialogFragment via le Android.De soutien.V7.App.AlertDialog.Générateur de
- La DialogFragment est lancé via un SupportFragmentManager
- Je suis en utilisant la dernière Soutien de la Bibliothèque de Conception
Voici l'erreur (je suis à l'aide de Xamarin, d'où le MonoDroid)
[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Android.Views.InflateException: Exception of type 'Android.Views.InflateException' was thrown.
[MonoDroid] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <IL 0x00011, 0x00078>
[MonoDroid] at Android.Runtime.JNIEnv.CallObjectMethod (intptr,intptr,Android.Runtime.JValue*) [0x00064] in /Users/builder/data/lanes/monodroid-mavericks-monodroid-5.1-series/d419c934/source/monodroid/src/Mono.Android/src/Runtime/JNIEnv.g.cs:195
[MonoDroid] at Android.Views.LayoutInflater.Inflate (int,Android.Views.ViewGroup) [0x0006d] in /Users/builder/data/lanes/monodroid-mavericks-monodroid-5.1-series/d419c934/source/monodroid/src/Mono.Android/platforms/android-21/src/generated/Android.Views.LayoutInflater.cs:646
[MonoDroid] at HelloLittleApp.MyOwnDialog.OnCreateDialog (Android.OS.Bundle) [0x00027] in e:\Progetti\HelloLittleApp-Android\Dialogs\MyOwnDialog.cs:22
[MonoDroid] at Android.Support.V4.App.DialogFragment.n_OnCreateDialog_Landroid_os_Bundle_ (intptr,intptr,intptr) <IL 0x00013, 0x000f7>
[MonoDroid] at (wrapper dynamic-method) object.e260d9fd-b921-4418-a47a-496934404e0e (intptr,intptr,intptr) <IL 0x00017, 0x0004b>
[MonoDroid] --- End of managed exception stack trace ---
[MonoDroid] android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.TextInputLayout
[MonoDroid] at android.view.LayoutInflater.createView(LayoutInflater.java:633)
[MonoDroid] at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
[MonoDroid] at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
[MonoDroid] at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
[MonoDroid] at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
[MonoDroid] at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
[MonoDroid] at md5a2b8d0e6e3890b714223a2b1204f749c.MyOwnDialog.n_onCreateDialog(Native Method)
[MonoDroid] at md5a2b8d0e6e3890b714223a2b1204f749c.MyOwnDialog.onCreateDialog(MyOwnDialog.java:29)
[MonoDroid] at android.support.v4.app.DialogFragment.getLayoutInflater(DialogFragment.java:308)
[MonoDroid] at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
[MonoDroid] at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
[MonoDroid] at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
[MonoDroid] at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
[MonoDroid] at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458)
[MonoDroid] at android.os.Handler.handleCallback(Handler.java:739)
[MonoDroid] at android.os.Handler.dispatchMessage(Handler.java:95)
[MonoDroid] at android.os.Looper.loop(Looper.java:135)
[MonoDroid] at android.app.ActivityThread.main(ActivityThread.java:5254)
[MonoDroid] at java.lang.reflect.Method.invoke(Native Method)
[MonoDroid] at java.lang.reflect.Method.invoke(Method.java:372)
[MonoDroid] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
[MonoDroid] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
[MonoDroid] Caused by: java.lang.reflect.InvocationTargetException
[MonoDroid] at java.lang.reflect.Constructor.newInstance(Native Method)
[MonoDroid] at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
[MonoDroid] at android.view.LayoutInflater.createView(LayoutInflater.java:607)
[MonoDroid] ... 21 more
[MonoDroid] Caused by: java.lang.RuntimeException: Failed to resolve attribute at index 18
[MonoDroid] at android.content.res.TypedArray.getColor(TypedArray.java:401)
[MonoDroid] at android.support.design.widget.CollapsingTextHelper.setCollapsedTextAppearance(CollapsingTextHelper.java:166)
[MonoDroid] at android.support.design.widget.TextInputLayout.<init>(TextInputLayout.java:106)
[MonoDroid] ... 24 more
[AndroidRuntime] Shutting down VM
Tout conseil est le bienvenue.
OriginalL'auteur Bacco | 2015-06-20
Vous devez vous connecter pour publier un commentaire.
J'ai eu la même erreur:
Essayer de la reproduire pour un nouveau projet, j'ai trouvé que le problème pour moi était dans l'App Thème! Essayez de définir
android:theme
champ dansapplication
balise de Android Manifeste comme ceci:Il a travaillé pour moi aussi, mais il a aussi supprimé mon ActionBar!
Oups, vous devez également mettre en œuvre AppCompatActivity au lieu de l'Activité. Puis il fonctionne très bien.
Mon minimumSDK et targetSDK de l'API sont 22. Dois-je utiliser
@style/Theme.AppCompat
ou@style/android:Theme.Material
?Mon style est
Theme.AppCompat.Light.NoActionBar
cependant dansvalues-c21
styles de fichier, j'ai trouvé des ressources tag commencé comme ça<resources>>
au lieu de<resources>
que cela pourrait être la raison de cette erreurCaused by android.content.res.Resources$NotFoundException: File res/drawable-v21/design_password_eye.xml from drawable resource ID
OriginalL'auteur AHTOH
Ce qui est arrivé à moi aussi, et je suis venu avec une solution inspirée par AHTOH de l'. Il suffit de changer le Thème de l'TextInputLayout:
Vous aurez besoin d'ajouter les appCompat bibliothèque si vous ne l'avez pas déjà:
OriginalL'auteur Phil
Au lieu d'utiliser EditText, utiliser android.de soutien.v7.widget de.AppCompatEditText. Par exemple:
Aussi, si vous ne l'avez pas déjà:
Ensemble AppCompat thème dans le manifeste de l'application de la balise:
Et hériter de la AppCompat à votre styles.xml en tant que root pour votre activité de styles, etc.:
android.support.design.widget.TextInputEditText
?OriginalL'auteur Frank
j'ai eu le
android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.TextInputLayout
erreur de trop. Il s'est avéré être causée par monproguard/gradle config
. J'ai été en utilisant leshrinkResources
directive dans mon communiqué de construire config.Après j'ai enlevé le
shrinkResources
directive de ma libération construire config tout a commencé à travailler à nouveau.Espère que cela aide quelqu'un.
OriginalL'auteur Williem
Avec l'annonce récente de Google I/O de 2018 et lunette de
com.android.
àandroidx.
toutes les bibliothèques de prise en charge touché de trop.Donc, vous pourriez avoir à changer vos dépendances à
com.google.android.material:material:<Major.Version.Number><-beta|alpha Version>
à compter du 06 juillet 2018, je suis en utilisant
com.google.android.material:material:1.0.0-beta01
Et au-dessus de la classe
<android.support.design.widget.TextInputLayout
et<android.support.design.widget.TextInputEditText
a été modifié pourcom.google.android.material.textfield.TextInputLayout
etcom.google.android.material.textfield.TextInputEditText
Ont un coup d'oeil à cette lien pour obtenir une meilleure idée de ce que toutes les bibliothèques de prise en charge a obtenu refractored.
Bonne chance.
OriginalL'auteur Shreyansh Lodha
Même si le Thème est bien défini dans le manifeste, ce qui pourrait se passer en fonction sur le Contexte vous êtes gonflant. Vous pouvez résoudre ce problème en utilisant un ContextWrapper avec votre AppTheme (ou un autre) lors de l'initialisation de la LayouInflater:
OriginalL'auteur goemic
J'ai vécu cette erreur, mais il a fini par être un contexte totalement différent. Je n'ai pas vu mon problème précis décrits ailleurs de poster une réponse ici, en espérant qu'il permettra de sauver d'autres temps. Dans mon cas, cette exception a été levée:
Cependant, il était lié à la mise en œuvre de la FileProvider permissions de caméra. Qui impliquent l'ajout d'un fichier xml dans Ressources/xml.
Rien avoir dans les Ressources/xml dossier de jeter l'exception. Les deux FileProvider et TextInputLayout travaillé de façon indépendante, mais pas utilisé dans le même projet.
Le résultat qui a fonctionné pour moi a été de déplacer tous les fichiers xml à partir de Ressources/xml pour les Ressources/mise en page et de référence avec @mise en page/my_reference_here.
Cela semble être un bug dans Visual Studio/Xamarin, mais au moins j'ai réussi à aller de l'avant. J'espère que cela aide un autre éviter de brûler un couple de jours de temps de la chasse vers le bas.
OriginalL'auteur ctc