Jestem nowy w programowaniu na Androida i chcę najpierw Hello World
uruchomić aplikację. Używam Eclipse IDE i zestawu SDK dla systemu Android 4.0.3 w wersji 15. Skopiowałem wszystko z witryny z samouczkami, ale kiedy próbuję uruchomić aplikację na stronie, pojawia virtual device
się ten błąd:
[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!
Oto moja klasa w com.maze.app
pakiecie: package 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);
}
}
i 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>
Oto konfiguracja 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
Jaki jest problem?
EDYCJA: Aplikacja nie działa na urządzeniu wirtualnym: Oto, co otrzymuję w LogCat (niektóre linie):
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
android:targetSdkVersion="@string/app_name"
jest wspomniany. czy to literówka?Odpowiedzi:
Wynika to z
android:targetSdkVersion="@string/app_name"
twojego pliku manifestu.Zmień to na:
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15"/>
targetSdkVersion
Powinna być liczbą całkowitą, ale@string/app_name
będzie ciągiem. Myślę, że to powoduje błąd.EDYCJA:
Musisz dodać domyślne
intent-filter
w swoimmanifiest
pliku dla działania. Wtedy tylko android może uruchomić aktywność. w przeciwnym razie w oknie konsoli pojawi się poniższy błąd.[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!
Dodaj następujące elementy do swojego
<activity>
tagu.<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>
źródło
Hello Android
. Czy muszę to jakoś zacząć? Jeśli tak, w jaki sposób? Jeśli nie, dlaczego nie działa?Hello Android
tekst.Hello Android
.Logcat
masz na myśliConsole
w Eclipse, to odpowiedź brzmi: nie. Nie dostaję żadnych błędów. Jeśli nie to miałeś na myśli, mówiąc o Logcat, powiedz mi, gdzie mogę go znaleźć.Oznacza to, że wersja Androida twojego avd jest starsza niż wersja używana do kompilacji kodu
źródło
Ten błąd występuje, gdy wersja sdk zainstalowana na urządzeniu (urządzenie rzeczywiste lub wirtualne) jest mniejsza niż
android:minSdkVersion
w manifeście systemu Android.Musisz albo zmniejszyć swój,
android:minSdkVersion
albo musisz określić wyższą wersję API dla swojego AVD.Pamiętaj, że zmniejszenie nie zawsze jest trywialne,
android:minSdkVersion
ponieważ musisz się upewnić, że Twoja aplikacja dba o faktycznie zainstalowany interfejs API i używa poprawnych metod: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!"); }
Korzystanie z biblioteki wsparcia Androida i / lub bibliotek, takich jak actionbar-sherlock , pomoże ci radzić sobie szczególnie z widżetami starszych wersji.
źródło
Używam Android Studio 0.8.1. Mam plik gradle projektu, jak poniżej:
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' } } }
Moim emulatorem był Android 4.0. Więc zmodyfikowałem mój emulator i utworzyłem poziom API 4.0.3 (apilevel 15). Zadziałało.
źródło
Wypróbowałem wszystkie opisane tutaj odpowiedzi, ale moje rozwiązanie zmieniało się w moim
build.gradle
plikuminSdkVersion
z 8 na 9, ponieważ niektóre biblioteki w moim projekcie nie mogą współpracować z API 8, to był powód tego komunikatuINSTALL_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" } ... ... ...
źródło
W moim przypadku edytowałem projekt mający to w pliku AndroidManifest.xml i który powodował powyższy błąd, w czasie wykonywania:
<uses-sdk android:minSdkVersion="17" android:targetSdkVersion="17" />
Właśnie zmieniłem minSdkVersion = "17" na minSdkVersion = "16". Mój wynikowy tag to:
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="17" />
Teraz nie otrzymuję już błędu ...
Mam nadzieję że to pomoże
źródło
Otrzymałem ten sam błąd, problemem była różnica w wersji Android SDK, z której korzystał AVD, a wersją w pliku AndroidManifest. Mogłem to rozwiązać, poprawiając plik
android: minSdkVersion = "16"
pasujące do AVD.
źródło
Zobaczysz ten sam błąd, jeśli próbujesz zainstalować apk, który został zbudowany przy użyciu
compileSdkVersion "android-L"
Nawet na urządzeniach z ostateczną wersją Androida 5.0. Po prostu zmień to na
compileSdkVersion 21
źródło
Poprawka dla nowego Androida 6.0 Marshmallow Naprawiono mój problem, kiedy zaktualizowałem do API 23 (Android 6.0 Marshmallow), aktualizując wersję narzędzi do kompilacji do 23.0.0 w następujący sposób:
android { buildToolsVersion '23.0.0' ...
I poszedł do Plik> Struktura projektu , wybrał zakładkę Właściwości , a następnie zaktualizował wersję Compile Sdk do „API 23: Android 5.X (MNC)” i wersję narzędzi do kompilacji do „23.0.0”
źródło
Jestem na Android Studio. Otrzymałem ten błąd, gdy min / targetSDKVersion były ustawione na 17. Patrząc przez ten wątek, próbowałem zmienić minSDKVersion, voila..problem naprawiony. Domyśl.. :(
android:minSdkVersion="17" android:targetSdkVersion="17" />
źródło
Upewnij się, że sprawdziłeś plik build.gradle i że nie używa nowszej wersji SDK niż ta, która jest zainstalowana w AVD. Dzieje się tak tylko wtedy, gdy używasz Android Studio.
źródło
Jeśli jesteś zupełnie nowy, tak jak ja, musisz najpierw zainstalować minimalny zestaw SDK. Sprawdź link.
U mnie to wyszło idealnie:
Ten sam problem, inny post z dobrym rozwiązaniem
Pozdrowienia,
Khaled.
źródło
Moim rozwiązaniem była zmiana listy
module
rozwijanej konfiguracji uruchamiania zwearable
naandroid.
(Ten błąd przydarzył mi się, gdy próbowałem uruchomić aplikację open source Google I / O Schedule). Konfiguracje pojawiały się automatycznie za każdym razem, gdy próbowałem uruchomić, dopóki nie zmieniłmodule
sięandroid
.Możesz uzyskać dostęp do konfiguracji, przechodząc do
Run
->Edit Configurations...
->General
zakładka ->Module: [drop-down-list-here]
źródło
Okazało się, że wprowadzenie zalecanej zmiany w manifeście nie rozwiązało mojego problemu.
Poprawka została znaleziona w folderze GradleScripts, w pliku build.gradle dla aplikacji Module:.
W tym pliku (build.gradle) zmodyfikowano następujący wiersz. minSdkVersion 22 Zmieniłem tę wartość „22” na „19” dla mojego konkretnego telefonu i kompilacja zakończyła się bez błędów.
źródło
Stary, radzę zmienić urządzenie wirtualne. Pobierz aplikację „Genimotion”, jest łatwa w użyciu i istnieje wiele różnych urządzeń, których potrzebujesz
źródło
Przejdź do
build.cradle
pliku swojego projektu i dodajdefaultConfig { minSdkVersion versions.minSdk
} `
To sprawia, że Twoja aplikacja jest zgodna z minimalnym zestawem SDK, na którym działa Twoje urządzenie.
źródło
Błąd emulatora Ionic Android INSTALL_FAILED_OLDER_SDK
Zasadniczo oznacza to, że instalacja nie powiodła się z powodu posiadania starszej wersji SDK niż targetSdkVersion określona w aplikacji (jest to problem z Gradle). Po prostu edytuj plik AndroidManifest.xml i dodaj następujący kod:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="14"/>
Po dniach szukania rozwiązania, to wszystko.
U mnie działa dobrze!
źródło
Jeśli pojawi się błąd „Błąd instalacji: INSTALL_FAILED_OLDER_SDK”, musisz zmienić wersję minSdkVersion w AndroidManifest na tę określoną w emulatorze Androida: zobacz Ustawienia -> Informacje o telefonie -> Wersja Androida.
źródło
Zmieniłem moje
android:minSdkVersion
iandroid:targetSdkVersion
na18
z21
:uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18"
Teraz mogę pomyślnie zainstalować moją aplikację.
źródło