Autore Topic: Eclipse ADT 23.0.2.1259578 Segnala un errore che prima non veniva segnalato  (Letto 665 volte)

Offline Luca122131

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Ubuntu 14.04
Ciao a tutti, seguendo il libro di Massimo Carli "Android4" ho incontrato questo esempio in cui si utilizza un alias (string) per definire il colore del testo di una TextView (textColor).
Premetto che so come potrei ovviare usando direttamente un colore (@color/) per questo parametro (textColor), ma volevo capire se:
  • E' un bug dell'ADT? Ultimamente, dopo Android L Preview lo stanno aggiornando spesso ed era affetto anche da alcuni bug rilevanti, alcuni dei quali già corretti
  • E' una nuova feature, nel senso che è meglio non usare alias @string/ per impostare un colore?
  • Qualsiasi altra info di cui siete a conoscenza ;-)

Metto qui sotto il codice affetto dal problema:

File colors.xml :
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<resources>

<!-- Absolute colors -->
<color name="red">#FF0000</color>

<!-- Application colors -->
<string name="error_message_color">@color/red</string>

</resources>

Parte del file in cui viene usato l'alias error_message_color:
Codice (XML): [Seleziona]
<TextView
   android:id="@+id/error_message_textView"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@string/error_message_label"
   android:textAppearance="?android:attr/textAppearanceMedium"
   android:textColor="@string/error_message_color"
   android:visibility="invisible"/>

Errore visualizzato nel file colors.xml di cui sopra:

Unexpected resource reference type; Expected value of @string/


Spero di essere stato abbastanza chiaro e non aver sbagliato luogo per il post.. è il mio primo post su questo forum e di solito sono abituato a rispondere e basta come TC sul forum di Google Chrome ;-)

Grazie a chi volesse rispondere!

Luca122131

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Eclipse ADT 23.0.2.1259578 Segnala un errore che prima non veniva segnalato
« Risposta #1 il: 15 Luglio 2014, 18:43:04 CEST »
0
Forse è un warning di lint che hanno introdotto di recente. Dovresti poter ripulire i warning di lint dal menu.

In ogni caso puoi definire un alias con un colore, non capisco perchè dovresti voler usare una stringa. Puoi benissimo fare:

Codice: [Seleziona]
<color name="error_message_color">@color/red</color>

Offline Luca122131

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Ubuntu 14.04
Re:Eclipse ADT 23.0.2.1259578 Segnala un errore che prima non veniva segnalato
« Risposta #2 il: 15 Luglio 2014, 21:29:49 CEST »
0
Ciao e grazie della risposta!

Effettivamente è legato a Lint, ma non è un warning bensì un problema vero e proprio che impedisce la compilazione!

Sinceramente non so perchè è spiegato così nel libro, si parla di usare poi questa risorsa per creare librerie di colori etc..  Grazie del consiglio però come dicevo nel messaggio volevo solo capire se fosse un problema di BUG o un modo di utilizzare le risorse "deprecato" o comunque da evitare; per ovviare ci sono diversi modi e magari anche usare direttamente @color/red per impostare tale colore...

Volevo solo sapere se c'era qualche spiegazione al fatto che prima funzionava ed ora no!

Grazie mille!

A presto!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Eclipse ADT 23.0.2.1259578 Segnala un errore che prima non veniva segnalato
« Risposta #3 il: 16 Luglio 2014, 09:53:41 CEST »
0
Effettivamente è legato a Lint, ma non è un warning bensì un problema vero e proprio che impedisce la compilazione!

In realtà i warning/errori di lint possono essere tranquillamente ignorati. Non mi ricordo il menu preciso su Eclipse, ma è una roba tipo "click destro sul progetto" -> "Android" -> "Clear lint markers" o qualcosa del genere.

Citazione
Volevo solo sapere se c'era qualche spiegazione al fatto che prima funzionava ed ora no!

Avranno inserito da poco questo Lint check. In effetti usare una stringa al posto di un colore potrebbe portare a dei crash a runtime e quindi è sconsigliabile come approccio.

Offline Luca122131

  • Nuovo arrivato
  • *
  • Post: 3
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Ubuntu 14.04
Re:Eclipse ADT 23.0.2.1259578 Segnala un errore che prima non veniva segnalato
« Risposta #4 il: 16 Luglio 2014, 09:55:36 CEST »
0
Grazie mille della risposta ;-)


A presto!