Question

J'ai du mal à compiler et à exécuter l'exemple ActionBarCompat d'Android 16.J'ai sélectionné le niveau d'API 16 comme cible de construction, ce qui semble fonctionner correctement, mais lorsque j'essaie de déboguer, ces erreurs apparaissent.Bien sûr, je pourrais modifier le niveau minimum de l'API dans le manifeste, mais à quoi cela servirait-il ?Je n'ai apporté aucune modification à l'échantillon, alors comment se fait-il qu'il ne fonctionne pas correctement ?

Class requires API level 14 (current min is 3): android.view.ActionProvider SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat    line 129    Android Lint Problem

Class requires API level 14 (current min is 3): android.view.ActionProvider SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat    line 134    Android Lint Problem

Class requires API level 14 (current min is 3): android.view.MenuItem.OnActionExpandListener    SimpleMenuItem.java /ActionBarCompat/src/com/example/android/actionbarcompat    line 155    Android Lint Problem

Je suis complètement confus, toute aide serait appréciée.

MISE À JOUR:J'ai ajouté les annotations @TargetApi(14), puis j'ai ajouté Lint suppres newApi à l'une des méthodes et maintenant, cela semble fonctionner correctement.Je suis encore plus confus.Quelqu'un pourrait-il faire la lumière sur ce qui se passe ?

Était-ce utile?

La solution

Malheureusement, ces exemples ne sont pas tenus à jour pour chaque itération du SDK.
-Tout d'abord, vous avez défini un min de sdkversion = 3 ?Cela me semble un peu faible.7 (éclair) est, je pense, la version minimale sur laquelle la plupart des projets devraient se concentrer.Les versions de niveau inférieur ont une part de marché ridicule et elle continuera de diminuer.

-Ce sont des avertissements relatifs aux peluches.Lint est un peu nouveau sur Android, c'est pourquoi cet exemple n'en tient pas compte.Il vous informe des problèmes potentiels dans votre code.Cet avertissement signifie que vous appelez une classe de niveau 14 dans un code pouvant s'exécuter sur un terminal de niveau 3.Vous devriez essayer de les supprimer avec un @TargetApi(14) annotation.Cette annotation indique à Lint que vous savez ce que vous faites et que ce code ne s'exécutera que pour la version SDK = 14 au minimum.

-De plus, si vous souhaitez utiliser la barre d'action avec n'importe quelle version d'Android, ce que vous souhaitez vraiment utiliser est la bibliothèque open source ActionBar Sherlock.Mais une étape à la fois :-)

Autres conseils

Dans votre manifeste, vous définissez android:minSdkVersion="3", pourtant vous effectuez des appels vers des classes/méthodes API de niveau 14.

Lint vérifiera ces types d'appels API et vous avertira.

Évidemment dans le ActionBarCompat le niveau actuel de l'API est vérifié pour garantir que l'appel peut être effectué en toute sécurité.

Pour supprimer l'avertissement, ajoutez simplement @TargetApi(14) avant la méthode où vous effectuez l'appel.

Vous devez modifier la cible de projet de projet au niveau API 14..in (Project-> Propriétés-> Android)

Ce sont leurs exigences:

En raison de l'utilisation de la barre d'action native et de ses classes apparentées sur Sandwich à la crème glacée, la bibliothèque nécessite que it et votre projet est compilé avecAndroid 4.0 ou plus récent .Le projet exige également que vous compiliez avec JDK 1.6 dans votre éditeur et tous les systèmes de construction que vous pouvez utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top