android — Ошибка установки: INSTALL_FAILED_OLDER_SDK" />

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

Я новичок в разработке для Android и хочу сначала запустить приложение Hello World. Я использую Eclipse IDE и SDK Android 4.0.3 версии 15. Я скопировал все с учебного сайта, но когда я пытаюсь запустить приложение на 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
78 голосов | спросил Dragos 1 FebruaryEurope/MoscowbWed, 01 Feb 2012 13:47:17 +0400000000pmWed, 01 Feb 2012 13:47:17 +040012 2012, 13:47:17

17 ответов


0

Это связано с android:targetSdkVersion="@string/app_name" в вашем файле манифеста.
Измените его на:

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

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

EDIT:
Вы должны добавить intent-filter по умолчанию в ваш manifiest файл для деятельности. Тогда только Android может начать деятельность. в противном случае вы получите следующую ошибку в окне консоли.

[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>
ответил Karthik 1 FebruaryEurope/MoscowbWed, 01 Feb 2012 14:29:16 +0400000000pmWed, 01 Feb 2012 14:29:16 +040012 2012, 14:29:16
0

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

ответил Rajdeep Dua 1 FebruaryEurope/MoscowbWed, 01 Feb 2012 13:57:32 +0400000000pmWed, 01 Feb 2012 13:57:32 +040012 2012, 13:57:32
0

Эта ошибка возникает, когда установленная на вашем устройстве 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-support-library и /или таких библиотек, как actionbar-sherlock , поможет вам особенно работать с виджетами старые версии.

ответил AlexS 29 AMpTue, 29 Apr 2014 11:17:29 +040017Tuesday 2014, 11:17:29
0

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

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

Мой эмулятор был Android 4.0. Поэтому я изменил свой эмулятор и сделал уровень API 4.0.3 (apilevel 15). Это сработало.

ответил Omer Sonmez 5 J000000Saturday14 2014, 01:52:24
0

Я перепробовал все ответы, описанные здесь, но мое решение менялось внутри моего build.gradle файла 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"
        }
...
...
...
ответил Jorgesys 14 Maypm15 2015, 23:45:08
0

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

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

Я только что изменил minSdkVersion = "17" на minSdkVersion = "16". Мой получившийся тег был:

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

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

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

ответил xyz 13 +04002013-10-13T07:22:49+04:00312013bEurope/MoscowSun, 13 Oct 2013 07:22:49 +0400 2013, 07:22:49
0

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

Android: minSdkVersion = "16"

для сопоставления с AVD.

ответил Hari Palappetty 2 Maypm14 2014, 21:57:10
0

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

android {
    buildToolsVersion '23.0.0'
...

И пошел в Файл> Структура проекта , выберите вкладку Свойства , а затем обновите Компилировать версию SDK до «API 23: Android 5.X (MNC)» и Инструменты сборки. версия до "23.0.0"

ответил yehyatt 23 PM00000010000003531 2015, 13:35:35
0

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

    android:minSdkVersion="17"
    android:targetSdkVersion="17" />
ответил Inamdar 10 J000000Wednesday13 2013, 22:37:48
0

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

ответил janex 29 J000000Tuesday14 2014, 20:51:34
0

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

Это отлично сработало для меня:

Та же проблема, что и в других сообщениях с хорошим решением

Привет,

Халед.

ответил Khaled 12 PM00000020000003731 2014, 14:20:37
0

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

compileSdkVersion "android-L"

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

compileSdkVersion 21
ответил friederbluemle 8 62014vEurope/Moscow11bEurope/MoscowSat, 08 Nov 2014 11:22:32 +0300 2014, 11:22:32
0

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

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

ответил Rock Lee 21 J000000Tuesday15 2015, 22:28:29
0

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

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

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

ответил jdosser 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 14 Sep 2015 19:35:13 +0300 2015, 19:35:13
0

Дружище, мой совет - сменить виртуальное устройство. Загрузите приложение «Genimotion», оно простое в использовании и содержит множество устройств, которые вам нужны.

ответил Shell Scott 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 20 Sep 2015 23:15:15 +0300 2015, 23:15:15
0

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

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

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

После нескольких дней поиска решения, все.

У меня отлично работает!

ответил Tom Costa 21 FebruaryEurope/MoscowbSun, 21 Feb 2016 01:27:44 +0300000000amSun, 21 Feb 2016 01:27:44 +030016 2016, 01:27:44
0

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

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

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

ответил Veena 26 42015vEurope/Moscow11bEurope/MoscowThu, 26 Nov 2015 15:08:06 +0300 2015, 15:08:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132