2012-03-24 15 views
9

Se eseguo "lanugine". all'interno directory del progetto ottengo gli avvertimenti previsti, ma se l'eseguo da dentro eclissi si verificano errori di assurdità e gli avvisi, ad esempio:Lint per Android in Eclipse fornisce risultati errati

  • La risorsa R.array.settings_derivatives sembra essere inutilizzata [in realtà, è Usato]
  • la xyz non è registrato nel manifesto [infatti, si è registrato]
  • chiamata richiede livello di API 3 (corrente min è 1): android.view.SurfaceView # isInEditMode [infatti minSdkVersion è impostato su 7]

modifica: Se creo un nuovo spazio di lavoro e importi i progetti esistenti ottengo gli errori corretti

+0

[La chiamata richiede livello API 3] (http://developer.android.com/reference/android/view/View.html#isInEditMode%28%29) è vera. Non si tratta del tuo livello di destinazione, ma del "dal momento che l'API 3" dove è stato introdotto quel metodo. Probabilmente puoi disattivare questo avviso - ha senso solo se vuoi portare la tua app a un livello min inferiore che hai attualmente – zapl

+0

È vero, ma non dovrebbe essere segnalato, come ho impostato minSdkVersion su 7. E non è segnalato come un avvertimento, piuttosto come un errore ... E il mio punto è che lo strumento da riga di comando fornisce un risultato [corretto] diverso – miniBill

+0

Innanzitutto, assicurati di essere sugli strumenti più recenti (R17) e il relativo Eclipse collegare. Se i problemi persistono, quindi creare un progetto di esempio che riproduce il problema, quindi inviare una segnalazione di bug a http://b.android.com. Non ho mai visto quei particolari messaggi prima. – CommonsWare

risposta

3

Sembra esserci un problema, quando la directory del progetto non è direttamente nella directory dello spazio di lavoro.

Ad oggi il bug dovrebbe essere fissato in versione 20: http://code.google.com/p/android/issues/detail?id=27527

Edit:

Se necessario si può fare un link simbolico nello spazio di lavoro.

3

Il problema è stato risolto spostando lo spazio di lavoro su uno nuovo. Probabilmente è stato un problema con le impostazioni lasciate dalle versioni precedenti di lint

-1

"Preference -> Android -> Lint Error Checking", cerca problemi "NewApi", e puoi vedere le impostazioni.

Questo controllo esegue una scansione di tutte le chiamate API Android nell'applicazione e mette in guardia su tutte le chiamate che non sono disponibili su tutti i versioni mirati da questa applicazione (secondo il suo attributo minimo SDK nel manifesto).

Se il codice è volutamente accesso API più recenti, e vi hanno assicurato (ad esempio con l'esecuzione condizionale) che questo codice sarà sempre e solo essere chiamato su una piattaforma supportata, allora si può annotare la tua classe o un metodo con il @TargetApi

+1

So cosa significa l'avviso. Il punto è che l'avviso non dovrebbe essere lì! – miniBill

0

ho risolto lo stesso problema con questo: -

clic destro del mouse sulla cartella del progetto> strumenti Android> Cancella link Marcatori

"Run Android Lint" rende alcuni marcatori ei marcatori causare questo errore.

Problemi correlati