InflateException con TextInputLayout y AlertDialog

Estoy intentando utilizar el TextInputLayout más nuevo en mi DialogFragment .

Aquí está mi código:

<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> 

Algunos antecedentes:

  • La actividad que inicia el DialogFragment deriva de AppCompatActivity
  • El DialogFragment deriva de Android.Support.V4.App.DialogFragment
  • Construyo el DialogFragment a través de Android.Support.V7.App.AlertDialog.Builder
  • El DialogFragment se inicia a través de un SupportFragmentManager
  • Estoy utilizando la última versión de la Biblioteca de Diseño de Soporte

Aquí está el error (estoy usando Xamarin, de ahí el 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 

Cualquier sugerencia es apreciada.

Tuve un error similar:

 android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.TextInputLayout 

Tratando de reproducirlo para un nuevo proyecto me encontré con que el problema para mí estaba en el tema de la aplicación! Trate de establecer android:theme en la etiqueta de application de Android Manifiesto como este:

  <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.AppCompat"> 

Esto me sucedió a mí también, y me surgió una solución inspirada en AHTOH . Requiere simplemente cambiar el Tema del TextInputLayout:

 <android.support.design.widget.TextInputLayout android:id="@+id/testingInputLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/Theme.AppCompat"> <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> 

Necesitará agregar la biblioteca appCompat si aún no lo ha hecho:

 compile 'com.android.support:appcompat-v7:23.0.1' 
  • Ampliar su actividad de AppCompatActivity
  • Extienda su fragmento (diálogo) desde android.support.v4.app.Fragment.
  • Utilice la última versión de la biblioteca de diseño.
  • En lugar de usar EditText, use android.support.v7.widget.AppCompatEditText. Por ejemplo:

      <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:errorEnabled="true"> <android.support.v7.widget.AppCompatEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="First Name" android:inputType="textPersonName" android:singleLine="true" /> </android.support.design.widget.TextInputLayout> 

Además, si no lo hizo ya: Fije el tema de AppCompat en su etiqueta de aplicación de manifiesto:

 <application ... android:theme="@style/Theme.AppCompat"> 

Y heredar AppCompat en tu styles.xml como root para tus estilos de actividad, etc .:

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"/> 

Tuve la android.view.InflateException: Binary XML file line #1: Error inflating class android.support.design.widget.TextInputLayout error también. Resultó ser causada por mi proguard/gradle config . Yo estaba usando la directiva shrinkResources en mi versión de compilación de configuración .

Después de haber eliminado la directiva shrinkResources de mi configuración de compilación de lanzamiento, todo empezó a funcionar de nuevo.

Espero que ayude a alguien.

  • Diseño que no muestra contenido cuando se carga a través de una nueva actividad en Xamarin
  • Cambiar el fondo de la actividad del código
  • Texto incorrecto Sí / No con la cadena de recursos de Android
  • Cómo instalar dos actividades como una aplicación en Xamarin Android C #
  • Cómo detener un proceso de System.Diagnostics.Process y obtener las estadísticas al final
  • Cómo implementar CountDownTimer Clase en Xamarin C # Android?
  • Archivado tamaño de archivo APK muy grande - Xamarin.Android
  • Error MSB4185: "System.Globalization.CultureInfo" no se ha habilitado para la ejecución
  • ¿Por qué no puedo establecer la elevación en una vista que agrego mediante programación?
  • Error de compilación de Xamarin (monodroid) + adMob
  • Instalación de Xamarin Mono para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.