web-dev-qa-db-fra.com

Android Lint pense à tort que la version minimale du SDK est 1

Eclipse refuse de construire mon Android. Dans l'explorateur de packages, le nœud racine du projet a le petit symbole d'erreur rouge, mais rien d'autre à l'intérieur n'a ce symbole. L'onglet Problèmes affiche les erreurs détectées par Peluche:

Call requires API level 3 (current min is 1): Android.os.AsyncTask#<init>   
Call requires API level 3 (current min is 1): Android.view.GestureDetector#<init>   
Call requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager#hideSoftInputFromWindow   
Call requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager#hideSoftInputFromWindow   
Call requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager#showSoftInput
Call requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager#showSoftInput
Call requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager#showSoftInput
Call requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager#toggleSoftInput
Call requires API level 3 (current min is 1): Android.view.Menu#getItem 
Call requires API level 3 (current min is 1): Android.view.Menu#getItem 
Call requires API level 3 (current min is 1): Android.widget.HorizontalScrollView#getId 
Call requires API level 5 (current min is 1): Android.app.Activity#onBackPressed    
Call requires API level 5 (current min is 1): Android.app.Activity#onBackPressed    
Call requires API level 5 (current min is 1): Android.app.Activity#onBackPressed    
Class requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager  
Class requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager  
Class requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager
Class requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager  
Class requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager  
Class requires API level 3 (current min is 1): Android.view.inputmethod.InputMethodManager
Class requires API level 3 (current min is 1): Android.widget.HorizontalScrollView
Class requires API level 3 (current min is 1): Android.widget.HorizontalScrollView
Field requires API level 3 (current min is 1): Android.os.Build#DISPLAY
Field requires API level 4 (current min is 1): Android.content.res.Configuration#screenLayout   
Field requires API level 4 (current min is 1): Android.os.Build#CPU_ABI 
Field requires API level 4 (current min is 1): Android.os.Build#MANUFACTURER
Field requires API level 4 (current min is 1): Android.os.Build$VERSION#SDK_INT

Ma meilleure supposition est que Lint pense que ma version minSdk est 1, ce qui n'est pas le cas; mon manifeste déclare minSdkVersion="8". J'ai essayé ce qui suit dans un effort pour résoudre ce problème:

  • Redémarrage d'Eclipse
  • Redémarrer mon ordinateur
  • Projet> Nettoyer
  • Suppression manuelle /bin et /gen pour forcer la génération de l'ourlet

À ce stade, je suis à court d'idées. Quelqu'un a des suggestions?

30
jdk

J'ai le même problème, et ma solution est:

Faites un clic droit sur le dossier du projet> Android tools> Clear Lint Markers

"Exécuter Android Lint" crée des marqueurs et les marqueurs provoquent cette erreur.

76
guanfei

"Effacer les marqueurs de charpie" dans la réponse acceptée a supprimé temporairement l'erreur, mais elle revenait chaque fois que j'enregistrais un fichier dans le projet concerné.

Pour ne plus signaler cette erreur, j'ai dû désactiver complètement la vérification des peluches:

Right click project -> Properties -> Android Lint Preferences

Search for "minSdk" in the search box

Click on "UsesMinSdkAttributes"

Click the "Ignore All" button at the bottom.

Nettoyez et reconstruisez le projet, et Eclipse/ADT n'exécutera plus la vérification des peluches pour minSdk sur votre projet.

16
DiscDev

Assurez-vous que vous disposez de Android: identifiant d'espace de nom avec l'attribut minSdkVersion. Comme ça:

Android:minSdkVersion="8".

Lors de la création d'un projet basé sur certains Android (comme BluetoothChat), l'espace de noms est omis et confond Lint. Même la suppression des marqueurs Lint ne résout pas vraiment le problème car ils réapparaissent après avoir exécuté Lint à nouveau , ce qui se produit automatiquement assez souvent.

Remarque: cela a été vérifié avec des exemples de révision 1 pour API16

6
Coryffaeus

Essayez un clic droit sur le dossier du projet> Android tools> fix properties

Vous devriez également vérifier dans les propriétés de construction que toutes vos bibliothèques et choses Android Android sont vérifiées et chargées dans le bon ordre. Faites un clic droit sur le projet> Propriétés> Construire

2
El Duderino

Un simple Projet -> Nettoyer a également résolu le problème pour moi.

1
NameZero912