安装错误: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包中的类: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的configuration:

 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"在你最鲜明的文件。
将其更改为:

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

targetSdkVersion应该是一个整数,但@string/app_name将是一个string。 我认为这导致了错误。

编辑:
您必须在您的manifiest文件中为活动添加默认的intent-filter 。 那么只有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> 

这意味着您的avd的android版本比用于编译代码的版本要旧

当您的设备(真实或虚拟设备)上安装的sdk版本小于android清单中的android:minSdkVersion时,会发生此错误。

你必须减less你的android:minSdkVersion或者你必须为你的AVD指定一个更高的api版本。

请记住,减lessandroid: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)。 有效。

我尝试了这里描述的所有响应,但是我的解决scheme正在将我的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" /> 

现在我没有得到错误了..

希望这可以帮助

收到同样的错误,问题是AVD使用的Android SDK版本和AndroidManifest文件版本有所不同。 我可以通过纠正

机器人:的minSdkVersion = “16”

与AVD相匹配。

修复新的Android 6.0棉花糖通过更新构build工具版本到23.0.0更新到API 23(Android 6.0棉花糖) 解决了我的问题,如下所示:

 android { buildToolsVersion '23.0.0' ... 

然后进入File> Project Structure ,selectProperties选项卡,然后将Compile Sdk版本更新为“API 23:Android 5.X(MNC)”, Build tool版本更新为“23.0.0”

我在Android Studio上。 当min / targetSDKVersion被设置为17时,我得到了这个错误。当看这个线程,我试图改变minSDKVersion,瞧…问题修复。 去搞清楚.. :(

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

请确保检查您的build.gradle,并且它不使用比您的AVD上安装的更新的SDK版本。 这只是如果你使用Android Studio。

如果你像我一样是全新的,那么你必须首先安装最小的SDK。 检查链接。

这对我来说是完美的:

同样的问题其他职位有一个好的解决scheme

问候,

哈立德。

如果您尝试安装使用的内置apk,则会看到相同的错误

 compileSdkVersion "android-L" 

即使是运行Android 5.0最终版本的设备也是如此。 只需将其更改为

 compileSdkVersion 21 

我的解决scheme是将运行configurationmodule下拉列表从wearable更改为android. (当我尝试运行Google的I / O Sched开源应用程序时,发生了这个错误。)每当我尝试运行时,它都会自动popupconfiguration,直到我将module更改为android

您可以通过Run – > Edit Configurations... – > General选项卡 – > Module: [drop-down-list-here]来访问configuration

我发现在清单中进行推荐的更改并不能解决我的问题。

该修复程序在Module:app的build.gradle文件的GradleScripts文件夹中find。

在这个文件(build.gradle)里面修改了下面这行。 minSdkVersion 22我改变了这个'22'值为'19'为我的特定的手机和构build完成没有错误。

伙伴,我的build议是改变虚拟设备。 下载“Genimotion”应用程序,它易于使用,并有很多你需要的任何设备

离子Android模拟器错误INSTALL_FAILED_OLDER_SDK

所以,基本上这意味着安装失败了,因为SDK的版本比你的应用程序中指定的targetSdkVersion(这是一个Gradle问题)要旧。 只需编辑AndroidManifest.xml文件并添加以下代码:

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

我已经将我的android:minSdkVersionandroid:targetSdkVersion21 android:targetSdkVersion18

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

现在我可以成功安装我的应用程序。