Estoy usando Studio 3.3.1 Build desde el 28 de enero.
Para mí, recibía el "error de enlace de recursos de Android fallido" que apuntaba a una línea en un archivo de diseño usando ConstraintLayout que había estado funcionando correctamente hasta hoy, cuando el único cambio en el archivo gradle de mi aplicación era actualizar las versiones de:
android.arch.navigation:navigation-fragment
android.arch.navigation:navigation-ui
desde 1.0.0-rc01
hasta 1.0.0-rc02
.
El mensaje de error decía algo sobre no reconocer lo layout_constraintTop_toTopOf
que, por supuesto, es una tontería porque había estado compilando bastante felizmente durante meses.
Ya estoy en 28.0.3 de herramientas de compilación y compileSdkVersion
de 28. He estado usando en androidx.appcompat
todas partes por un tiempo (convertí este proyecto meses atrás a androidx).
Primero pasé por un proyecto limpio (sin ayuda) e invalidando caché / reinicio (sin ayuda). El diseño en cuestión se había definido originalmente utilizando
<TextView>
, <EditText>
Y <ImageView>
los componentes (que había estado trabajando muy bien hasta hoy).
Pero después de leer las respuestas anteriores, pensé que tal vez de alguna manera se estaba causando confusión aquí, así que cambié el diseño para usar:
<androidx.appcompat.widget
versiones de todos los componentes. Sin cambios, todavía tengo el error.
Luego eliminé el <androidx.appcompat.widget.AppCompatTextView
bloque que estaba causando el error de compilación. Cambié todas las referencias a él en los otros widgets para referirme a "padre" en su lugar. Hice una marca. Esta vez la compilación se completó sin errores .
Entonces, algo extraño en esa definición de widget pensé ... esto es lo que era:
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/contact_firstname_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/contact_fname_label"
android:gravity="end"
android:textAppearance="@android:style/TextAppearance.Material.Small"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/contact_detail_fname"
app:layout_constraintBaseline_toBaselineOf="@+id/contact_detail_fname"/>
Luego pegué el bloque que había cortado con Ctrl-V anteriormente y cambié las referencias a esa ID en los otros componentes que hacen referencia a ella en el diseño. No se pudo compilar .
Corté el bloque de nuevo y lo pegué en WordPad. Luego, leyendo de la pasta de WordPad, en realidad lo volví a escribir (es decir, no copié / pegué esta vez) - línea por línea, haciendo una marca en el proyecto después de que escribí la definición mínima, y luego nuevamente cuando escribí poner en cada nueva línea. ¡Cada vez que el proyecto se compiló limpiamente!
No sé qué hacer con esto. ¿Quizás algún carácter invisible espurio estaba originalmente en el archivo?