Sto usando Studio 3.3.1 Build dal 28 gennaio.
Per me stavo ricevendo l'errore "errore collegamento risorse Android non riuscito" che puntava a una riga in un file di layout utilizzando ConstraintLayout che funzionava correttamente fino ad oggi, quando l'unica modifica al file gradle a livello di app era aggiornare le versioni di:
android.arch.navigation:navigation-fragment
android.arch.navigation:navigation-ui
dal 1.0.0-rc01
al 1.0.0-rc02
.
Il messaggio di errore diceva qualcosa sul non riconoscere il layout_constraintTop_toTopOf
che ovviamente è sciocco perché si compilava abbastanza felicemente da mesi.
Sono già sulla 28.0.3 degli strumenti di compilazione e compileSdkVersion
sulla 28. Uso androidx.appcompat
ovunque da un po 'di tempo ( ho convertito questo progetto mesi indietro in androidx).
Per prima cosa ho eseguito un progetto pulito (nessun aiuto) e invalidando la cache / riavvio (nessun aiuto). Il layout in questione era stato originariamente definito utilizzando
<TextView>
, <EditText>
E <ImageView>
componenti (che era stato lavorando bene fino ad oggi).
Ma dopo aver letto le risposte di cui sopra ho pensato che forse in qualche modo ci fosse confusione qui, quindi ho cambiato il layout per utilizzare:
<androidx.appcompat.widget
versioni di tutti i vari componenti. Nessun cambiamento - ho ancora ricevuto l'errore.
Ho quindi eliminato il <androidx.appcompat.widget.AppCompatTextView
blocco che causava l'errore di compilazione. Ho cambiato tutti i riferimenti ad esso negli altri widget per fare riferimento a "genitore" invece. Fatto un trucco. Questa volta la compilazione è stata completata senza errori .
Quindi qualcosa di strano nella definizione del widget che ho pensato ... ecco cos'è:
<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"/>
Ho quindi incollato nuovamente il blocco che avevo tagliato Ctrl-V in precedenza e ho cambiato i riferimenti a quell'ID negli altri componenti che lo fanno riferimento nel layout. Compilazione fallita .
Ho tagliato di nuovo il blocco e l'ho incollato su WordPad. Quindi leggendo dall'incolla di WordPad, l'ho effettivamente digitato di nuovo (cioè non ho copiato / incollato questa volta) - riga per riga, facendo un trucco sul progetto dopo aver digitato la definizione minima, e poi di nuovo in seguito quando ho inserire ogni nuova riga. Ogni volta che il progetto è stato compilato in modo pulito!
Non so cosa pensare di questo. Forse qualche carattere invisibile spurio era originariamente nel file?