On ne cible pas les dernières versions d'Android
J'ai un message d'avertissement lorsque vous essayez de tester thème sur les derniers SDK Android Package 4.2.
Voici mon fichier de manifeste:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.themetest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppBaseTheme" >
<activity
android:name="com.example.themetest.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Ne cible pas les dernières versions d'Android; les modes de compatibilité
s'appliquent. Envisager des essais et de la mise à jour de cette version. Consulter l'
android.os.Construire.VERSION_CODES javadoc pour
des détails. AndroidManifest.xml /ThemeTest ligne 7 Android Peluches Problème
J'utilise un thème personnalisé appelé "AppBaseTheme'. Ma question est exactement ce que Consulter le android.os.Construire.VERSION_CODES javadoc.. Comment pourrais-je résoudre ce problème?
Vous devez vous connecter pour publier un commentaire.
Il dit cela à cause de
targetSdkVersion="16"
. API 16 est Jellybean 4.1 4.1.1 et, tandis que Jellybean 4.2 l'API 17.Essayez d'utiliser:
Aussi, gardez à l'esprit que ce est un tissu d'avertissement. Ces avertissement existent pour vous aider à améliorer votre code et de le rendre facile à entretenir, tout en étant compatible avec la dernière Android changements. En ignorant ce ne sera pas vous poser de problèmes immédiats.
EDIT: Avec Android 4.3, la dernière version du SDK est maintenant âgé de 18 ans, de sorte que vous devez utiliser:
EDIT 2: Avec Android 4.4, la dernière version du SDK est désormais 19, de sorte que vous devez utiliser:
EDIT 3: Avec Android L, vous devez utiliser les valeurs suivantes, comme décrit ici:
EDIT 4: Avec Android L de la version publique, vous devez utiliser 21 au lieu:
20 a été utilisé pour 4,4 W, ou pour Android Wear.
EDIT 5: Avec Android M de la version publique, vous devez utiliser des 23 à la place:
À l'avenir, veuillez consulter le Android officielle de la documentation de vous tenir à jour avec les dernières API Android Niveaux.
build.gradle
fichier!Vous ne devez pas utiliser
android:maxSdkVersion="17"
car cela signifie que si quelqu'un en utilisant votre application de mises à jour de son système d'exploitation android dans une version de plus de 17, votre application sera supprimée.maxSDKVersion
maistargetSDKVersion
Cette charpie message vous indique que le mode de compatibilité sera appliquée automatiquement à toutes les fonctionnalités que vous pourriez avoir utilisé qui ne sont pas disponibles dans les versions ultérieures de votre déclarée targetSdkVersion de 16 ans (et, c'est aussi de vous dire qu'il y sont ces versions ultérieures - par exemple, 17).
Automatique le mode de compatibilité des ajustements peuvent ne pas être aussi idéal comme ce que vous pourriez faire vous-même en utilisant toutes les fonctionnalités ont été ajoutées plus tard (que niveau 16) versions pour remplacer les fonctionnalités du niveau 16 ceux que vous avez utilisés, qui ont été supprimés dans les versions ultérieures (le cas échéant). Mais tout devrait encore continuer à travailler dans les versions ultérieures (en raison des ajustements apportés par la compatibilité du code qui est appliquée automatiquement pour fonctionner sur des versions plus élevé que votre déclarée targetSdkVersion l'API de niveau); simplement, il peut ne pas fonctionner aussi bien que votre propre personnalisé, la détection, et l'utilisation de nouvelles fonctionnalités (lorsque votre application détecte qu'il est en cours d'exécution dans les versions ultérieures qui ont ces caractéristiques) serait ont travaillé.
Voici une discussion, avec des exemples, des minSdkLevel vs targetSdkLevel:
Android Min Version du SDK vs Cible Version du SDK
Une autre chose que vous voulez à considérer est la relation du Projet de construction de la Cible (le niveau du SDK utilisé pour compiler votre application) à la targetSdkLevel:
Différence entre "Construire Cible SDK" dans Eclipse et android:targetSdkVersion dans AndroidManifest.xml?
J'ai eu le même problème m'arrive à moi, il s'avère qu'il existe maintenant une nouvelle (généralement non utilisé) paramètre dans le manifeste que vous aussi souhaitez utiliser. Ajouter android:maxSdkVersion="16" à votre uses-sdk comme j'ai ci-dessous:
Cela vous donnera pas d'avertissement lors de l'enregistrement (depuis la version 17 est le courant maximum de la version du SDK)
La maxSdkVersion n'est pas nécessaire, mais il vous aidera dans le cas où quelque chose dans la version 17 est modifié. Si vous êtes en utilisant la norme ADK des composants de la plateforme, vous n'aurez pas besoin de la maxSdkVersion.
Sa un message d'avertissement si vous voulez résoudre, alors vous pouvez définir android:maxSdkVersion="17", mais vous devez prendre garde au fait que si quelqu'un actuellement l'utilisation de l'application et de la mise à niveau de son système d'exploitation android pour une plus grande version de 17 ensuite votre application va automatiquement supprimer à cause de la version non prise en charge.. Afin de prendre soin de ce fait aussi..
Ajouter
xmlns:tools="http://schemas.android.com/tools" tools:ignore="OldTargetApi"
.À partir de: Coincé sur pourquoi mon application android ne fonctionnent pas?