Ich bin neu in der Android-Entwicklung und möchte zunächst die Hello World
-Anwendung zum Laufen bringen . Ich verwende Eclipse IDE und die Android 4.0.3-Version 15-SDK. Ich habe alles von einer Tutorial-Site kopiert, aber wenn ich versuche, die Anwendung auf dem virtual device
auszuführen, erhalte ich diese Fehlermeldung:
[2012-02-01 11:31:23 - Android_test] Installation error: INSTALL_FAILED_OLDER_SDK
[2012-02-01 11:31:23 - Android_test] Please check logcat output for more details.
[2012-02-01 11:31:23 - Android_test] Launch canceled!
Hier ist meine Klasse im com.maze.app
-Paket: Paket com.maze.app;
import Android.app.Activity;
import Android.os.Bundle;
import Android.widget.TextView;
public class HelloAndroid extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Android");
setContentView(tv);
}
}
und der AndroidManifest.xml
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.maze.app"
Android:versionCode="1"
Android:versionName="1.0" >
<uses-sdk Android:minSdkVersion="15" Android:targetSdkVersion="@string/app_name"/>
<application
Android:icon="@drawable/ic_launcher"
Android:label="@string/app_name" >
<activity Android:name="HelloAndroid" Android:launchMode="standard" Android:enabled="true"></activity>
</application>
Hier ist die Konfiguration des Virtual Device
:
Name: AndroidVD
CPU/ABI: ARM(armeabi-v7a)
Path: path\to\avd
Target: Android 4.0.3(API level 15)
Skin: WVGA800
hw.lcd.density: 240
hw.cpu.model: cortex-a8
vm.heapSize: 48
hw.ramSize:512
Worin besteht das Problem?
BEARBEITEN: Die Anwendung läuft nicht auf dem virtuellen Gerät: Folgendes bekomme ich in LogCat (einige der Zeilen):
D/PackageManager(92): New package installed in /data/app/com.maze.app-2.apk
D/dalvikvm(92): GC_CONCURRENT freed 660K, 9% free 11935K/12999K, paused 18ms+72ms
I/ActivityManager(92): Force stopping package com.maze.app uid=10040
D/BackupManagerService(92): Received broadcast Intent { act=Android.intent.action.PACKAGE_REPLACED dat=package:com.maze.app flg=0x10000010 (has extras) }
V/BackupManagerService(92): updatePackageParticipantsLocked: com.maze.app
Es liegt an Android:targetSdkVersion="@string/app_name"
in Ihrer vielfältigsten Datei.
Ändern Sie es in:
<uses-sdk Android:minSdkVersion="15" Android:targetSdkVersion="15"/>
Die targetSdkVersion
sollte eine ganze Zahl sein, @string/app_name
wäre jedoch eine Zeichenfolge. Ich denke das verursacht den Fehler.
BEARBEITEN:
Sie müssen einen Standard-intent-filter
in Ihrer manifiest
-Datei für die Aktivität hinzufügen. Dann kann nur Android die Aktivität starten. Andernfalls wird der folgende Fehler in Ihrem Konsolenfenster angezeigt.
[2012-02-02 09:17:39 - Test] No Launcher activity found!
[2012-02-02 09:17:39 - Test] The launch will only sync the application package on the device!
Fügen Sie Ihrem <activity>
-Tag Folgendes hinzu.
<activity Android:name="HelloAndroid" Android:launchMode="standard" Android:enabled="true">
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Dies bedeutet, dass die Android-Version Ihres AVD-Geräts älter ist als die zum Kompilieren des Codes verwendete Version
Dieser Fehler tritt auf, wenn die auf Ihrem Gerät installierte sdk-Version (reales oder virtuelles Gerät) kleiner als Android:minSdkVersion
in Ihrem Android-Manifest ist.
Sie müssen entweder Ihren Android:minSdkVersion
verringern oder eine höhere API-Version für Ihre AVD angeben.
Beachten Sie, dass es nicht immer einfach ist, Android:minSdkVersion
zu verringern, da Sie sicherstellen müssen, dass sich Ihre App um die tatsächlich installierte API kümmert und die richtigen Methoden verwendet:
AsyncTask<String, Object, String> task = new AsyncTask<String, Object, String>() {
@Override
protected Boolean doInBackground(String... params) {
if (params == null) return "";
StringBuilder b = new StringBuilder();
for (String p : params) {
b.append(p);
}
return b.toString();
}
};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,"Hello", " ", "world!");
} else {
task.execute("Hello", " ", "world!");
}
Die Verwendung der Android-Support-Bibliothek und/oder Bibliotheken wie actionbar-sherlock hilft Ihnen, sich insbesondere mit Widgets älterer Versionen zu beschäftigen.
Ich verwende Android Studio 0.8.1. Ich habe eine Gradle-Datei eines Projekts wie folgt:
Android {
compileSdkVersion 19
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.omersonmez.widgets.hotspot"
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
Mein Emulator war Android 4.0. Also änderte ich meinen Emulator und machte API 4.0.3 (Apilevel 15) . Es hat funktioniert.
Ich habe alle hier beschriebenen Antworten ausprobiert, aber meine Lösung änderte sich in meiner build.gradle
-Datei minSdkVersion
von 8 auf 9, da einige Bibliotheken in meinem Projekt nicht mit API 8 arbeiten können. Dies war der Grund für die Nachricht INSTALL_FAILED_OLDER_SDK
:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.tuna.hello.androidstudioapplication"
minSdkVersion 9
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
...
...
...
Fix für neuen Android 6.0 Marshmallow Mein Problem bei der Aktualisierung auf API 23 (Android 6.0 Marshmallow) wurde behoben, indem die Buildtools-Version wie folgt auf 23.0.0 aktualisiert wurde:
Android {
buildToolsVersion '23.0.0'
...
Gehen Sie zu File> Project Structure, wählen Sie die Registerkarte Properties aus und aktualisieren Sie die Compile Sdk-Version auf "API 23: Android 5.X (MNC)" und die Version der Build-Tools bis "23.0.0"
Wurde derselbe Fehler erhalten, bestand das Problem in der Version von Android SDK, die AVD verwendete, und der Version in der AndroidManifest-Datei. Ich könnte es lösen, indem ich das korrigiere
Android: minSdkVersion = "16"
zu AVD passen.
In meinem Fall habe ich ein Projekt mit dieser Datei in der Datei AndroidManifest.xml bearbeitet, das mir zur Laufzeit den obigen Fehler angezeigt hat:
<uses-sdk
Android:minSdkVersion="17"
Android:targetSdkVersion="17" />
Was ich gerade getan habe, war minSdkVersion = "17" in minSdkVersion = "16" zu ändern. Mein resultierendes Tag war:
<uses-sdk
Android:minSdkVersion="16"
Android:targetSdkVersion="17" />
Jetzt bekomme ich den Fehler nicht mehr ..
Hoffe das hilft
Meine Lösung bestand darin, die Laufkonfigurationen module
Dropdown-Liste von wearable
in Android.
zu ändern. (Dieser Fehler ist bei mir aufgetreten, als ich Googles E/A-Sched-Open-Source-App ausgeführt habe.) Die Konfigurationen werden bei jedem Versuch automatisch angezeigt laufen, bis ich module
in Android
geändert habe.
Sie können auf die Konfigurationen zugreifen, indem Sie Run
-> Edit Configurations...
-> General
tab -> Module: [drop-down-list-here]
aufrufen.
Wenn Sie wie ich völlig neu sind, müssen Sie zuerst das minimale SDK installieren. Überprüfen Sie den Link.
Das hat für mich perfekt funktioniert:
Gleiches Problem anderer Beitrag mit einer guten Lösung
Grüße,
Khaled.
Ich fand, dass die empfohlene Änderung des Manifests mein Problem nicht gelöst hat.
Das Update wurde im Ordner GradleScripts in der Datei build.gradle für die Anwendung Module: gefunden.
In dieser Datei (build.gradle) wurde die folgende Zeile geändert MinSdkVersion 22 Ich habe diesen Wert '22' für mein spezielles Telefon in '19' geändert und der Build wurde ohne Fehler abgeschlossen.
Mate, mein Rat ist, das virtuelle Gerät zu ändern. Laden Sie die "Genymotion" -Anwendung herunter, sie ist einfach zu bedienen und es gibt viele Geräte, die Sie benötigen
Stellen Sie sicher, dass Sie build.gradle überprüfen und dass keine neuere SDK-Version als die auf Ihrem AVD installierte verwendet wird. Dies ist jedoch nur möglich, wenn Sie Android Studio verwenden.
Ionic Android-Emulatorfehler INSTALL_FAILED_OLDER_SDK
Im Grunde bedeutet dies, dass die Installation fehlgeschlagen ist, weil eine ältere SDK-Version als die in Ihrer App angegebene targetSdkVersion vorhanden ist (ein Gradle-Problem). Bearbeiten Sie einfach die Datei AndroidManifest.xml und fügen Sie den folgenden Code hinzu:
<uses-sdk Android:minSdkVersion="19" Android:targetSdkVersion="14"/>
Nach Tagen der Suche nach der Lösung ist das alles.
Funktioniert gut für mich!
Ich bin auf Android Studio. Ich habe diesen Fehler erhalten, als min/targetSDKVersion auf 17 gesetzt waren. Während ich diesen Thread anschaute, versuchte ich, die minSDKVersion zu ändern. Das Problem wurde behoben. Stelle dir das vor.. :(
Android:minSdkVersion="17"
Android:targetSdkVersion="17" />
Der gleiche Fehler wird angezeigt, wenn Sie versuchen, eine Apk zu installieren, die mit erstellt wurde
compileSdkVersion "Android-L"
Sogar für Geräte, auf denen die endgültige Version von Android 5.0 ausgeführt wird ... __
compileSdkVersion 21