Ошибка установки: INSTALL_FAILED_OLDER_SDK

Я новичок в разработке Android, и хочу сначала запустить приложение Hello World . Я использую Eclipse IDE и Android 4.0.3 версии 15 SDK. Я скопировал все с учебного сайта, но когда я пытаюсь запустить приложение на virtual device я получаю эту ошибку:

 [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! 

Вот мой класс в пакете com.maze.app : пакет 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); } } 

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

Вот конфигурация 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 

В чем проблема?

EDIT: приложение не работает на виртуальном устройстве: вот что я получаю на LogCat (некоторые из строк):

 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" в вашем явном файле.
Измените его на:

 <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15"/> 

targetSdkVersion должен быть целым числом, но @string/app_name будет строкой. Я думаю, что это вызывает ошибку.

РЕДАКТИРОВАТЬ:
Вы должны добавить intent-filter умолчанию в свой файл с manifiest показателем активности. Тогда только андроид может запустить эту активность. В противном случае вы получите ошибку ниже в окне консоли.

 [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! 

Добавьте в свой <activity> .

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

Это означает, что версия андроида вашего avd старше версии, используемой для компиляции кода

Эта ошибка возникает, когда версия sdk, установленная на вашем устройстве (реальное или виртуальное устройство), меньше, чем android:minSdkVersion в манифесте Android.

Вам либо нужно уменьшить ваш android:minSdkVersion либо вам нужно указать более высокую версию api для вашего AVD.

Имейте в виду, что не всегда тривиально уменьшать android:minSdkVersion поскольку вы должны убедиться, что ваше приложение заботится о фактическом установленном API и использует правильные методы:

 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!"); } 

Использование библиотеки поддержки android-библиотек и / или библиотек, таких как actionbar-sherlock , поможет вам работать с виджетами более старых версий.

Я использую Android Studio 0.8.1. У меня есть файл градиента проекта, как показано ниже:

 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' } } } 

Мой эмулятор был андроидом 4.0. Поэтому я модифицировал эмулятор и сделал api level 4.0.3 (apilevel 15). Это сработало.

Я пробовал все ответы, описанные здесь, но мое решение менялось внутри моего файла minSdkVersion с 8 по 9, потому что некоторые библиотеки моего проекта не могут работать с API 8, это было причиной сообщения 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" } ... ... ... 

В моем случае я отредактировал проект, имеющий это в файле AndroidManifest.xml, и который дал мне ошибку выше, во время выполнения:

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

То, что я сделал, это изменить minSdkVersion = "17", на minSdkVersion = "16". Мой итоговый тег:

 <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="17" /> 

Теперь я больше не получаю ошибку.

Надеюсь это поможет

Полученная же ошибка, проблема была в версии Android SDK, которую использовал AVD, и версии в файле AndroidManifest. Я мог бы решить это, исправив

Android: minSdkVersion = "16"

Для соответствия с AVD.

Исправление для нового Android 6.0 Marshmallow Исправлена ​​ошибка, когда я обновлялся до API 23 (Android 6.0 Marshmallow), обновляя версию средств сборки до 23.0.0 следующим образом:

 android { buildToolsVersion '23.0.0' ... 

И отправился в File> Project Structure , затем выбрал вкладку Properties, а затем обновил версию Compile Sdk до «API 23: Android 5.X (MNC)» и версию « Инструменты для сборки» до «23.0.0»,

Я нахожусь в Android Studio. Я получил эту ошибку, когда min / targetSDKVersion был установлен на 17. Просматривая эту тему, я попытался изменить minSDKVersion, исправлено voila..problem. Go figure .. 🙁

  android:minSdkVersion="17" android:targetSdkVersion="17" /> 

Обязательно проверьте свой build.gradle и не используйте более новую версию SDK, чем то, что установлено на вашем AVD. Это только если вы используете Android Studio.

Если вы совершенно новые, как я, вы должны сначала установить минимальный SDK. Проверьте ссылку.

Это отлично для меня получилось:

Такая же проблема другая должность с хорошим решением

С Уважением,

Халед.

Вы увидите ту же ошибку, если пытаетесь установить apk, который был построен с использованием

 compileSdkVersion "android-L" 

Даже для устройств, на которых установлена ​​финальная версия Android 5.0. Просто измените это на

 compileSdkVersion 21 

Мое решение состояло в том, чтобы module раскрывающийся список module конфигурации запуска с wearable на android. (Эта ошибка произошла со мной, когда я попытался запустить приложение с открытым исходным кодом I / O Sched.) Он будет автоматически всплывать в конфигурациях каждый раз, когда я пытаюсь запустить, пока не изменю module на android .

Вы можете получить доступ к настройкам, перейдя в меню « Run -> « Edit Configurations... -> вкладка « General » -> « Module: [drop-down-list-here]

Я обнаружил, что внесение рекомендуемого изменения в манифест не решило мою проблему.

Исправление было обнаружено в папке GradleScripts в файле build.gradle для приложения Module:.

Внутри этого файла (build.gradle) была изменена следующая строка. MinSdkVersion 22 Я изменил это значение «22» на «19» для моего конкретного телефона, и сборка завершилась без ошибок.

Mate, мой совет – изменить виртуальное устройство. Загрузите приложение «Genimotion», его прост в использовании, и есть много любых устройств, которые вам нужны

Ионная ошибка эмулятора Android INSTALL_FAILED_OLDER_SDK

Таким образом, в основном это означает, что установка завершилась неудачей из-за наличия более старой версии SDK, чем targetSdkVersion, указанной в вашем приложении (это проблема Gradle). Просто отредактируйте файл AndroidManifest.xml и добавьте следующий код:

 <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="14"/> 

Я изменил свой android:minSdkVersion и android:targetSdkVersion до 18 из 21 :

 uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18" 

Теперь я могу успешно установить приложение.