Я новичок в разработке 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
пакете: 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);
}
}
и 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
В чем проблема?
РЕДАКТИРОВАТЬ: приложение не запущено на виртуальном устройстве: вот что я получаю на 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"
упоминается. это опечатка?Ответы:
Это связано с
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>
источник
Hello Android
. Надо ли как-то его запускать? Если да, то как? Если нет, то почему не работает?Hello Android
текст.Hello Android
.Logcat
вы имеете в видуConsole
Eclipse, то ответ отрицательный. Я не получаю ошибок. Если под Logcat вы имели в виду не это, скажите, пожалуйста, где я могу его найти.Это означает, что версия android вашего 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-support-library и / или библиотек, таких как actionbar-sherlock , поможет вам работать, особенно с виджетами более старых версий.
источник
Я использую 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). Это сработало.
источник
Я попробовал все ответы, описанные здесь, но мое решение изменилось в моем
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" } ... ... ...
источник
В моем случае я редактировал проект, имеющий это в файле 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.
источник
Вы увидите ту же ошибку, если попытаетесь установить apk, созданный с использованием
compileSdkVersion "android-L"
Даже для устройств под управлением последней версии Android 5.0. Просто измените это на
compileSdkVersion 21
источник
Исправление для нового 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, вуаля .. проблема исправлена. Иди разбери .. :(
android:minSdkVersion="17" android:targetSdkVersion="17" />
источник
Обязательно проверьте свой build.gradle и убедитесь, что он не использует более новую версию SDK, чем та, которая установлена на вашем AVD. Это только если вы используете Android Studio.
источник
Если вы совсем новичок, как я, вы должны сначала установить минимальный SDK. Проверить ссылку.
Это отлично сработало для меня:
Та же проблема, другой пост с хорошим решением
С Уважением,
Халед.
источник
Мое решение состояло в том, чтобы изменить
module
раскрывающийся список конфигураций запуска сwearable
наandroid.
(эта ошибка произошла со мной, когда я пытался запустить приложение с открытым исходным кодом Google I / O Sched). Конфигурации автоматически всплывали каждый раз, когда я пытался запустить, пока я изменилmodule
кandroid
.Вы можете получить доступ к настройкам, перейдя
Run
->Edit Configurations...
->General
вкладка ->Module: [drop-down-list-here]
источник
Я обнаружил, что внесение рекомендованного изменения в манифест не решило мою проблему.
Исправление было найдено в папке GradleScripts в файле build.gradle для приложения Module :.
Внутри этого файла (build.gradle) была изменена следующая строка. minSdkVersion 22 Я изменил это значение «22» на «19» для моего конкретного телефона, и сборка завершилась без ошибок.
источник
Мате, мой совет - сменить виртуальное устройство. Скачайте приложение "Genimotion", оно простое в использовании и есть много любых устройств, которые вам нужны
источник
Зайдите в
build.cradle
файл вашего проекта и добавьтеdefaultConfig { minSdkVersion versions.minSdk
} `
Это означает, что ваше приложение соответствует минимальному пакету SDK, на котором работает ваше устройство.
источник
Ошибка эмулятора Ionic Android INSTALL_FAILED_OLDER_SDK
Таким образом, в основном это означает, что установка не удалась из-за наличия более старой версии SDK, чем targetSdkVersion, указанной в вашем приложении (это проблема Gradle). Просто отредактируйте файл AndroidManifest.xml и добавьте следующий код:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="14"/>
После нескольких дней поиска решения, вот и все.
У меня отлично работает!
источник
Если появляется ошибка «Ошибка установки: INSTALL_FAILED_OLDER_SDK», необходимо изменить версию minSdkVersion в AndroidManifest на ту, которая указана в эмуляторе Android: см. Настройки -> О телефоне -> Версия Android.
источник
Я изменил свой
android:minSdkVersion
иandroid:targetSdkVersion
на18
с21
:uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18"
Теперь я могу успешно установить свое приложение.
источник