安装错误: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:minSdkVersion
和android:targetSdkVersion
从21
android:targetSdkVersion
为18
:
uses-sdk android:minSdkVersion="18" android:targetSdkVersion="18"
现在我可以成功安装我的应用程序。