InflateException con TextInputLayout y AlertDialog
Estoy intentando utilizar el TextInputLayout más nuevo en mi DialogFragment .
Aquí está mi código:
- Async / esperar malas prácticas bajo Android?
- No se puede crear una nueva aplicación en blanco (Android) en Visual Studio 2015
- Visual Studio no reconoce la función BindingInflate de MvxFragment
- Android FragmentTab host y Fragmentos dentro de Fragmentos
- GetAllNetworkInterfaces () lanza la excepción
<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.
- Cómo ocultar las pestañas de Android utilizando Xamarin Formulario renderizador personalizado?
- Monodroid - Monodevelop limpia los datos del usuario mientras se despliega en el dispositivo
- Cuál es la diferencia entre Java.Net.Uri y Android.Net.Uri
- OnResume Cámara Reinit Negro Pantalla
- Cómo eliminar la flecha HomeAsUpButton de ActionBar Sherlock?
- Advertencias después de la actualización Xamarin Studio
- ¿Cómo detectar la salida de la aplicación en android?
- Transferencia eficiente de datos de objetos personalizados entre las actividades de Android
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.
- ¿Por qué mi actividad está causando fugas de memoria al navegar con el botón de inicio?
- ¿Por qué no puedo instanciar este Fragmento en Android?