Error al inflar la clase android.support.v7.widget.AppCompatEditText
Estoy tratando de usar android.support.design.widget.TextInputLayout con EditText para la entrada de contraseña. Una vez que hay un problema con la entrada de contraseña, el TextInputLayout debe mostrar un mensaje de error.
Cuando estoy usando EditText, hay un accidente en setError (cadena).
- Diálogo AppCompat con estilo que contiene un fragmento
- Aspecto de ShareActionProvider
- Cómo evitar DEX 64K LIMIT importando la biblioteca correcta
- Cambiar el color de la barra de herramientas en Appcompat 21
- Android 5.0 - Animar el AppCompat v7 21 icono de inicio de la hamburguesa a la flecha hacia atrás mediante programación
Iniciar sesión:
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.infibond.infi/com.infibond.account.login.LoginActivity}: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) at android.app.ActivityThread.access$800(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:149) at android.app.ActivityThread.main(ActivityThread.java:5257) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) at dalvik.system.NativeStart.main(NativeStart.java) Caused by java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 at android.content.res.TypedArray.getColor(TypedArray.java:327) at android.widget.TextView.<init>(TextView.java:700) at android.widget.TextView.<init>(TextView.java:635) at android.widget.TextView.<init>(TextView.java:631) at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:380) at com.infibond.account.login.LoginFragment.onCreateView(LoginFragment.java:94) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547) at com.infibond.base.Inheritance.Activities.ActivityBase.onStart(ActivityBase.java:112) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171) at android.app.Activity.performStart(Activity.java:5421) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2279) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) at android.app.ActivityThread.access$800(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:149) at android.app.ActivityThread.main(ActivityThread.java:5257) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) at dalvik.system.NativeStart.main(NativeStart.java)
Intenté cambiar a AppCompatEditText, pero por alguna razón, en algunos dispositivos (por ejemplo: Asus TOOJ, Asus ZOO2) mi aplicación se está estrellando.
Iniciar sesión:
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.infibond.infi/com.infibond.account.login.LoginActivity}: android.view.InflateException: Binary XML file line #22: Error inflating class android.support.v7.widget.AppCompatEditText at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2376) at android.app.ActivityThread.access$800(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5253) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by android.view.InflateException: Binary XML file line #22: Error inflating class android.support.v7.widget.AppCompatEditText at android.view.LayoutInflater.createView(LayoutInflater.java:633) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.createCustomViewInternal(CalligraphyLayoutInflater.java:211) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access$000(CalligraphyLayoutInflater.java:20) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater$PrivateWrapperFactory2.onCreateView(CalligraphyLayoutInflater.java:302) at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:177) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:733) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.inflate(CalligraphyLayoutInflater.java:60) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at com.infibond.account.login.LoginFragment.onCreateView(LoginFragment.java:91) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547) at com.infibond.base.Inheritance.Activities.ActivityBase.onStart(ActivityBase.java:112) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1220) at android.app.Activity.performStart(Activity.java:5991) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2279) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2376) at android.app.ActivityThread.access$800(ActivityThread.java:147) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5253) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Código:
private void formValidatorHandler() { if (NetworkManager.getConnectivityStatus(getActivity()) == NetworkManager.NETWORK_STATUS_NOT_CONNECTED) { new MyToast(getActivity(), getString(R.string.error_internet_connection_title), MyToast.KEY_TYPE_RED).show(); return; } if (!((AccountBaseActivity) getActivity()).isValidPassword(mEtPassword.getText().toString())) { String passwordError = getString(R.string.error_account_invalid_Password); mPasswordwrapper.setError(passwordError); //AndroidUtils.showToast(passwordError, Toast.LENGTH_SHORT); return; } else { mPasswordwrapper.setError(""); } SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); String freshInstall = preferences.getString(Constant.Prefs.SP_KEY_FRESH_INSTALL, LoginRequest.FRESH_INSTALL_TRUE); ProgressBarClass.startLoading(getActivity()); new LoginRequest(getActivity(), mEtUserName.getText().toString().trim(), mEtPassword.getText().toString().trim(), freshInstall, true, ((LoginActivity) getActivity())); }
Código xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <include android:id="@+id/loginInfiLogoRL" layout="@layout/login_infi_logo_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="-3dp" android:layout_marginTop="5dp" android:layout_marginBottom="10dp"/> <android.support.design.widget.TextInputLayout android:id="@+id/email_wrapper" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/loginInfiLogoRL" android:theme="@style/TextLabel"> <android.support.v7.widget.AppCompatEditText android:id="@+id/etUserName" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/login_screen_email_hint" android:imeOptions="actionNext" android:inputType="textEmailAddress" android:maxLines="1" android:nextFocusDown="@+id/etPassword" android:singleLine="true" android:textColor="@color/white" android:textColorHighlight="@color/Orange" android:textColorHint="@color/white" /> </android.support.design.widget.TextInputLayout> </RelativeLayout>
Mi nivel de aplicación
apply plugin: 'com.android.application' apply plugin: 'io.fabric' //apply plugin: 'newrelic' apply plugin: 'com.google.gms.google-services' apply plugin: 'com.jakewharton.hugo' android { compileSdkVersion 23 buildToolsVersion "23.0.1" signingConfigs { Signing_Prod { keyAlias 'infi' keyPassword 'infi1234' storeFile file('../release.keystore/infi.jks') storePassword 'infi1234' } } lintOptions { abortOnError false } defaultConfig { applicationId "com.infibond.infi" minSdkVersion 18 targetSdkVersion 22 versionCode 113 versionName "1.0.1" multiDexEnabled true //fixes gradle issue } buildTypes { debug { } release { shrinkResources true minifyEnabled false //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.Signing_Prod } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } packagingOptions { exclude 'META-INF/ASL2.0' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/LICENSE.txt' } dexOptions { jumboMode true incremental true preDexLibraries false javaMaxHeapSize "4g" } /* configurations { all*.exclude group: 'com.android.support', module: 'support-v4' }*/ sourceSets { main { assets.srcDirs = ['src/main/assets', 'src/main/assets/'] } } } repositories { mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url 'https://maven.fabric.io/public' } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') //TODO: ----------------- Media Chooser Lib ---------------------- // compile project(':mediaChooserlib') //TODO: ----------------- Upload Service Lib --------------------- // compile project(':uploadservice') //TODO: ----------------- Meta Data Extractor -------------------- // compile files('libs/metadata-extractor-2.6.4.jar') //TODO: ----------------- JakeWharton Disk LRU Cache ------------- // compile 'com.jakewharton:disklrucache:2.0.2' //TODO: ----------------- FFmpeg Meta Data Retriver -------------- // compile 'com.github.wseemann:FFmpegMediaMetadataRetriever:1.0.2' //TODO: ----------------- Support -------------------------------- // compile 'com.android.support:multidex:1.0.1' compile 'com.android.support:support-v4:23.1.1' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:recyclerview-v7:23.1.1' compile 'com.android.support:design:23.1.1' //TODO: ----------------- Google Play ---------------------------- // compile 'com.google.android.gms:play-services:8.1.0' compile 'com.google.apis:google-api-services-tasks:v1-rev41-1.20.0' //TODO: ----------------- Google Drive --------------------------- // compile ('com.google.api-client:google-api-client-android:1.20.0') /*{ exclude module: 'httpclient' //by artifact name exclude group: 'org.apache.httpcomponents' //by group exclude group: 'org.apache.httpcomponents', module: 'httpclient' //by both name and group }*/ compile 'com.google.apis:google-api-services-drive:v2-rev170-1.20.0' //TODO: ----------------- GSON ----------------------------------- // compile 'com.google.code.gson:gson:2.3' //TODO: ----------------- Creative SDK --------------------------- // compile 'com.adobe.creativesdk:image:4.0.0' //TODO: ------- Android Transcoder (Media Compression) SDK ------- // compile 'net.ypresto.androidtranscoder:android-transcoder:0.1.9' //TODO: ----------------- Active Android ------------------------- // compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT' //TODO: ----------------- Volley --------------------------------- // compile 'com.mcxiaoke.volley:library:1.0.17' //TODO: ----------------- Glide ---------------------------------- // compile 'com.github.bumptech.glide:glide:3.7.0' //TODO: ----------------- Bus Libs ------------------------------- // compile 'com.squareup:otto:1.3.8' compile 'de.greenrobot:eventbus:2.4.0' //TODO: ----------------- PhotoView - photo zoom lib ------------- // compile 'com.commit451:PhotoView:1.2.4' //TODO: ----------------- AutoFit TextView ----------------------- // compile 'me.grantland:autofittextview:0.2.1' //TODO: ----------------- Custom Font Lib -------------------------// compile 'uk.co.chrisjenx:calligraphy:2.1.0' //TODO: ----------------- New Relic analytics & tracking --------- // //compile 'com.newrelic.agent.android:android-agent:4.+' //TODO: ----------------- Crashlytics ---------------------------- // compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true; } //TODO: ================= Social Networks ======================== // //TODO: ----------------- Sound Cloud ---------------------------- // //compile 'com.soundcloud.android:android-crop:1.0.1@aar' //TODO: ----------------- Facebook ------------------------------- // compile 'com.facebook.android:facebook-android-sdk:4.4.0' //TODO: ----------------- Twitter -------------------------------- // //compile 'org.twitter4j:twitter4j-core:4.0.4' //TODO: ----------------- YouTube - re-write to newer version ---- // compile files('libs/YouTubeAndroidPlayerApi.jar') //TODO: ----------------- DropBox -------------------------------- // //compile files('libs/dropbox-android-sdk-1.6.3.jar') //================== UNKNOWN =============================== // //compile files('libs/json_simple-1.1.jar') //================== KNOWN - NOT USED ====================== // //----------------- Scroll View Tricks---------------------- // //compile files('libs/scrollviewtricks.jar') //----------------- StaggeredGrid //compile 'com.etsy.android.grid:library:1.0.5' //----------------- Tumblr //compile 'com.tumblr:jumblr:0.0.11' //compile 'com.crittercism:crittercism-android-agent:5.0.6' //compile 'com.edmodo:cropper:1.0.1' //apply plugin: 'com.google.gms.google-services' // --------------------- Progress Bars ---------------------- compile 'com.mikhaellopez:circularprogressbar:1.1.0' }
- ¿Puedo usar Activity en lugar de ActionbarActivity sin Actionbar en Appcompat-v7?
- ¿Cómo se estila la barra de herramientas appcompat-v7 como Theme.AppCompat.Light.DarkActionBar?
- Android - onAttach (Context) no se llama a la API 23
- Cambiar el color de texto del título de ActionBar usando el tema Light.DarkActionBar en AppCompat 21
- AppCompat y EditText subrayado diferente en diferentes API
- Viendo el mensaje en los registros: "app: theme is deprecated"?
- Uso de la barra de herramientas AppCompat con FrameLayout
- Java.lang.NoSuchFieldError: android.support.v7.appcompat
Finalmente resuelto!
Lo cambié de nuevo a EditText y fijo los estilos xml. Me enteré de que el padre del estilo causó los crath, así que lo quité.
<android.support.design.widget.TextInputLayout android:id="@+id/email_wrapper" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/loginInfiLogoRL" android:theme="@style/TextLabel"> <EditText android:id="@+id/etUserName" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/login_screen_email_hint" android:imeOptions="actionNext" android:inputType="textEmailAddress" android:maxLines="1" android:nextFocusDown="@+id/etPassword" android:singleLine="true" android:textColor="@android:color/white" android:textColorHighlight="@color/White" android:textColorHint="@android:color/white" /> </android.support.design.widget.TextInputLayout>
En estilos:
<style name="TextLabel"> <!-- Hint color and label color in FALSE state --> <item name="android:textColorHint">@color/White</item> <item name="android:textColorHighlight">@android:color/white</item> <item name="android:textColorLink">@color/White</item> <item name="android:textSize">20sp</item> <!-- Label color in TRUE state and bar color FALSE and TRUE State --> <item name="colorAccent">@color/accent</item> <item name="colorControlNormal">@android:color/white</item> <item name="colorControlActivated">@color/accent</item> </style>
- ¿Cómo debo organizar el control de código fuente para los proyectos de Android, incluidas las bibliotecas?
- Android: Administrador de fragmentos se convierte en nulo