it-swarm.com.de

Nicht für die neuesten Versionen von Android

Ich habe eine Warnung, wenn ich versuche, das Thema auf dem neuesten Android SDK Package 4.2 zu testen.

Hier ist meine Manifestdatei:

<?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>

Targeting nicht auf die neuesten Versionen von Android; Kompatibilitätsmodi sich bewerben. Testen und aktualisieren Sie diese Version. Wenden Sie sich an den Android.os.Build.VERSION_CODES javadoc für Einzelheiten. AndroidManifest.xml/ThemeTest Linie 7 Android Lint Problem

Ich verwende ein benutzerdefiniertes Design namens "AppBaseTheme". Meine Frage ist, was genau Javadoc. . Wie könnte ich dieses Problem lösen?

51
Edy Developer

Es sagt dies wegen targetSdkVersion="16". API 16 ist Jellybean 4.1 und 4.1.1, während Jellybean 4.2 API 17 ist. 

Versuchen Sie es mit:

<uses-sdk
        Android:minSdkVersion="8"
        Android:targetSdkVersion="17" />

Denken Sie auch daran, dass dies eine Lint-Warnung ist. Diese Warnhinweise helfen Ihnen, Ihren Code zu verbessern und die Wartung zu vereinfachen, während er mit den neuesten Android-Änderungen kompatibel ist. Wenn Sie dies ignorieren, werden Sie keine unmittelbaren Probleme verursachen.

BEARBEITEN: Mit Android 4.3 ist die neueste SDK-Version jetzt 18, daher sollten Sie Folgendes verwenden:

...
        Android:targetSdkVersion="18" />

EDIT 2: Mit Android 4.4 ist die neueste SDK-Version jetzt 19, daher sollten Sie Folgendes verwenden:

...
        Android:targetSdkVersion="19" />

BEARBEITEN 3: Bei Android L müssen Sie die folgenden Werte verwenden: hier :

compileSdkVersion="Android-L"
minSdkVersion="L"
targetSdkVersion="L"

EDIT 4: Bei der Veröffentlichung von Android L müssen Sie stattdessen 21 verwenden:

...
        Android:targetSdkVersion="21" />

20 wurde für 4,4 W oder für Android Wear verwendet.

EDIT 5: Bei der Veröffentlichung von Android M müssen Sie stattdessen 23 verwenden:

...
        Android:targetSdkVersion="23" />

Bitte konsultieren Sie in Zukunft die offizielle Android-Dokumentation , um sich über die neuesten Android-API-Levels auf dem Laufenden zu halten.

98
Raghav Sood

Sie sollten Android:maxSdkVersion="17" nicht verwenden, da dies bedeutet, dass, wenn jemand, der Ihre App verwendet, sein Android-Betriebssystem auf eine Version größer als 17 aktualisiert, Ihre App entfernt wird.

7
ClCfe

Diese fusselfreie Meldung weist Sie darauf hin, dass der Kompatibilitätsmodus automatisch auf alle Funktionen angewendet wird, die Sie möglicherweise verwendet haben und die in späteren Versionen als Ihrer deklarierten targetSdkVersion von 16 (nicht verfügbar sind, und weist Sie auch darauf hin, dass sind solche späteren Versionen - zB 17).

Diese automatischen Anpassungen des Kompatibilitätsmodus sind möglicherweise nicht so ideal wie das, was Sie selbst erreichen können, wenn Sie die Funktionen verwenden, die in späteren Versionen (als Version 16) hinzugefügt wurden, um die Funktionen der Version 16 zu ersetzen, die Sie möglicherweise verwendet haben und in der entfernt wurden spätere Versionen (falls vorhanden). In späteren Versionen sollte jedoch weiterhin alles funktionieren (aufgrund der Anpassungen, die durch den Kompatibilitätscode vorgenommen wurden, der automatisch angewendet wird, wenn Versionen ausgeführt werden, die über der API-Stufe Ihres deklarierten targetSdkVersion liegen). Dies funktioniert möglicherweise nicht so gut wie die benutzerdefinierte Erkennung und Verwendung der neuen Funktionen (wenn Ihre App feststellt, dass sie in späteren Versionen mit diesen Funktionen ausgeführt wird). würde haben funktioniert.

Hier ist eine Diskussion mit Beispielen von minSdkLevel vs. targetSdkLevel:

Android Min SDK-Version vs. Ziel-SDK-Version

Sie sollten auch die Beziehung zwischen dem Project Build Target (der Ebene des SDKs, mit dem Ihre App kompiliert wurde) und dem targetSdkLevel berücksichtigen:

nterschied zwischen "Build Target SDK" in Eclipse und Android: targetSdkVersion in AndroidManifest.xml?

3
Carl

Ich hatte das gleiche Problem, das mir passiert ist. Es stellt sich heraus, dass es jetzt einen neuen (normalerweise nicht verwendeten) Parameter im Manifest gibt, den Sie auch verwenden möchten. Fügen Sie Android: maxSdkVersion = "16" zu Ihren Uses-sdk hinzu, wie ich es unten habe:

<uses-sdk
    Android:minSdkVersion="8"
    Android:targetSdkVersion="17"
    Android:maxSdkVersion="17" />

Beim Speichern wird keine Warnung angezeigt (da Version 17 die aktuelle maximale Version des SDK ist).

Die maxSdkVersion ist nicht erforderlich, wird jedoch hilfreich sein, wenn in Version 17 etwas geändert wird. Wenn Sie Standardkomponenten der ADK-Plattform verwenden, benötigen Sie keine maxSdkVersion. 

2
David D

Es ist eine Warnmeldung, wenn Sie es lösen wollen, dann können Sie Android einstellen: maxSdkVersion = "17", aber Sie müssen darauf achten, dass jemand, der derzeit Ihre App verwendet, sein Android-Betriebssystem auf eine höhere Version als 17 dann wird Ihre App aufgrund einer nicht unterstützten Version automatisch entfernt. Achten Sie auf diese Tatsache. 

0
Anil Chahal

Fügen Sie xmlns:tools="http://schemas.Android.com/tools" tools:ignore="OldTargetApi" hinzu.

<?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" xmlns:tools="http://schemas.Android.com/tools" tools:ignore="OldTargetApi">

    <uses-sdk
        Android:minSdkVersion="8"
        Android:targetSdkVersion="16" />

Von: Bleibt fest, warum meine Android-App nicht funktioniert?

0
kangear