在Android Studio中,“Failure [INSTALL_FAILED_OLDER_SDK]”是什么意思?

47

我有一个正在使用制作应用程序的Froyo(2.2)设备。 当我尝试直接将应用程序运行到设备时,它显示错误信息:

pkg: /data/local/tmp/com.example.HelloWorldProject
Failure [INSTALL_FAILED_OLDER_SDK]

而在另一个窗口中会显示一个错误信息:

Unable to attach test reporter to test framework or test framework quit unexpectedly

这些错误似乎是由什么引起的?

编辑:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.test.helloworld"
          android:versionCode="1"
          android:versionName="1.0">

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

    <application
            android:allowBackup="true"
            android:debuggable="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            >
        <activity
                android:name="com.example.HelloWorldProject.MyActivity"
                android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

</manifest>

你的应用程序最低需要哪个SDK版本才能运行?也许你的应用程序是为比你的设备更高的版本创建的。 - user773737
我正在使用 API 级别 8 - Abel Callejo
请问您能否发布您的清单文件? - hichris123
1
我已经编辑了问题,以便能够呈现清单文件。 - Abel Callejo
16个回答

33

我改变之后

defaultConfig {
    applicationId "com.example.bocheng.myapplication"
    minSdkVersion 15
    targetSdkVersion 'L' #change this to 19
    versionCode 1
    versionName "1.0"
}

build.gradle文件中。

它有效。


4
这真的是正确的答案。targetSdkVersion 不应该在设备上使用'L'。楼主应该接受这个正确的答案。找到了很多未能解决此问题的答案。 - Qin Zhengquan
@QinZhengquan 这个 defaultConfing 在哪里?我在 AndroidManifest.xml 中没有看到它,我该去哪里找到它? - iqueqiorio
1
build.gradle 文件中的 @iqueqiorio - chengbo

30
该错误。
Failure [INSTALL_FAILED_OLDER_SDK]

这意味着您正在尝试安装一个在其清单中指定的minSdkVersion高于设备API级别的应用程序。将该数字更改为8,应该就可以正常工作了。我不确定其他错误,但可能与此有关。


是的,我在出现错误时已经使用了API级别8 - Abel Callejo
我尝试使用3来打印“Hello World”,但仍然无法正常运行。 - baash05
我既没有设置minSdk也没有设置targetSdk。但是在安装APK时出现了这个错误。我甚至反编译了最终的APK,但没有发现min/target属性。 - Dr.jacky

10
除了在build.gradle中检查正确的minSdkVersion之外,还要确保您已安装所有必要的工具以及所需Android版本的SDK平台。 在Android Studio中,单击“工具” -> “Android” -> “SDK Manager”。 然后最少安装以下内容(对于没有模拟器的Android 2.2):
  • Android SDK工具
  • Android SDK平台工具
  • Android SDK构建工具(最新版)
  • Android 2.2(API 8)
    • SDK平台
    • Google API
这就是我使用的方法。

4

请确保在您的build.gradle中没有设置minSdkVersion高于8的值。如果您完全不指定它,它应该使用您的AndroidManfiest.xml中的值,这个值似乎已经正确设置了。


3
在我的项目中,我在哪里可以看到 build.gradle 文件? - praveen
我既没有设置minSdk也没有设置targetSdk。但在安装APK时我收到了这个错误。我甚至反编译了最终的APK,但找不到min/target属性。 - Dr.jacky

3

对于这种问题,只需删除uses-sdk标签即可解决。


1

失败 [INSTALL_FAILED_OLDER_SDK]

对于 Sumsung note3,我只需编辑 AndroidManifest.xml 文件并添加以下代码:

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

1
"

Failure [INSTALL_FAILED_OLDER_SDK]基本上意味着安装失败,因为目标位置(AVD / 设备)的SDK版本比您的应用程序中指定的targetSdkVersion要旧。

N/B Froyo 2.2 API 8

要解决此问题,只需将targetSdkVersion="17"更改为targetSdkVersion="8"即可。

干杯。

"

1

确保选择的运行/调试配置与您在Android Studio中安装的穿戴设备或移动设备相匹配...


0

按照以下方式修复您的gradle文件

defaultConfig {
    applicationId "package.com.app"
    minSdkVersion 8 //this should be lower than your device
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}

0
In android studio: reduce minSDKversion. It will work...

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "healthcare.acceliant.trianz.com.myapplication"
        minSdkVersion 11
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.1'
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接