Android Studio 中的“失败 [INSTALL_FAILED_OLDER_SDK]”是啥意思?

Posted

技术标签:

【中文标题】Android Studio 中的“失败 [INSTALL_FAILED_OLDER_SDK]”是啥意思?【英文标题】:What does "Failure [INSTALL_FAILED_OLDER_SDK]" mean in Android Studio?Android Studio 中的“失败 [INSTALL_FAILED_OLDER_SDK]”是什么意思? 【发布时间】:2014-01-04 12:18:28 【问题描述】:

我得到了我用来制作应用程序的 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 是多少?也许您的应用是为高于您设备的版本创建的。 我使用的是api级别8 能否请您发布您的清单? 我已经编辑了问题以便能够显示清单文件 【参考方案1】:

我改变之后

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

build.gradle 文件中。

有效

【讨论】:

这确实是正确答案。 targetSdkVersion 不应该对设备使用“L”。 OP 应该接受这个作为正确答案。找到了许多未能解决此问题的答案。 @QinZhengquan 这个defaultConfing在哪里我在AndroidManifest.xml中没有看到,我在哪里可以找到这个? @iqueqiorio 在build.gradle 文件中【参考方案2】:

这个错误

Failure [INSTALL_FAILED_OLDER_SDK]

表示您尝试安装的应用在其清单中指定的 minSdkVersion 高于设备的 API 级别。将该号码更改为8,它应该可以工作。我不确定另一个错误,但它可能与这个有关。

【讨论】:

是的,我已经在使用 API 级别 8,但出现错误。 我尝试用 3 做一个 hello world,但仍然无法运行。 我既没有设置 minSdk 也没有设置 targetSdk。但我在安装 APK 期间收到此错误。我什至反编译了最终的 APK,并没有 min/target 属性。【参考方案3】:

除了在build.gradle 中检查正确的minSdkVersion 之外,请确保您已在SDK Manager 中为您首选的Android 版本安装了所有必要的tools 和正确的SDK Platform。在 Android Studio 中点击 Tools -> Android -> SDK 管理器。然后至少安装(对于没有模拟器的 Android 2.2):

Android SDK 工具 Android SDK 平台工具 Android SDK 构建工具(最新) Android 2.2 (API 8) SDK 平台 Google API

这对我有用。

【讨论】:

【参考方案4】:

确保您的build.gradle 中没有设置大于8 的minSdkVersion。如果您根本不指定它,它应该使用您的AndroidManfiest.xml 中的值,即似乎已经正确设置了。

【讨论】:

在我的项目中哪里可以看到 build.gradle 文件 我既没有设置 minSdk 也没有设置 targetSdk。但我在安装 APK 期间收到此错误。我什至反编译了最终的 APK,并没有 min/target 属性。【参考方案5】:

只需删除 uses-sdk 标记即可解决此类问题。

【讨论】:

【参考方案6】:

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

N/B Froyo 2.2 API 8

要解决这个问题,只需更改

targetSdkVersion="17"targetSdkVersion="8"

干杯。

【讨论】:

【参考方案7】:

根据您在 android studio 中的安装,确保选择运行/调试配置是可穿戴的或可移动的...

【讨论】:

【参考方案8】:

失败 [INSTALL_FAILED_OLDER_SDK]

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

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

【讨论】:

【参考方案9】:

在您的清单文件中,package 属性设置为com.test.helloworld,但是您的活动类位于不同的包下。将您的 MyActivity 类包更改为 com.example.helloworld

【讨论】:

【参考方案10】:

这是因为您的移动设备的 sdk 版本比您的应用程序旧..!!! 这意味着您的应用程序需要 sdk 版本,假设 Lollipop 但您的手机有版本 kitkat。

【讨论】:

【参考方案11】:

通过以下方式修复您的 gradle 文件

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

【讨论】:

【参考方案12】:
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'

【讨论】:

【参考方案13】:

我修复了这个问题。设备系统版本比 sdk minSdkVersion 旧。 我刚刚将 minSdkVersion 从 android_L 修改为 19 以我的nexus 4.4.4为目标。

buildscript 
    repositories 
        jcenter()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:0.12.2'
    

apply plugin: 'com.android.application'

repositories 
    jcenter()


android 
    **compileSdkVersion 'android-L'** modified to 19
    buildToolsVersion "20.0.0"

    defaultConfig 
        applicationId "com.antwei.uiframework.ui"
        minSdkVersion 14
        targetSdkVersion 'L'
        versionCode 1
        versionName "1.0"
    
    buildTypes 
        release 
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    


dependencies 
    compile fileTree(dir: 'libs', include: ['*.jar'])
    **compile 'com.android.support:support-v4:21.+'** modified to compile 'com.android.support:support-v4:20.0.0'

如何通过 ide 修改值。 选择file->Project Structure -> Facets -> android-gradle 然后将compile Sdk Version从android_L修改为19

对不起,我没有足够的声誉来添加图片

【讨论】:

【参考方案14】:

也许去文件>项目结构>模块并在我完成此操作之前将你的源代码兼容性更改为较低版本,我在 build.gradle 中进行了更改 mindSdk 和 tragetSdk 从 31 到 30。 现在我可以毫无问题地使用模拟器了

【讨论】:

【参考方案15】:

更改文件 AndroidManifest.xml

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

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

【讨论】:

以上是关于Android Studio 中的“失败 [INSTALL_FAILED_OLDER_SDK]”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

大神, 我的android studio中的虚拟机怎么联网?

android studio怎样运行打包后的apk

无法按照 Google“入门”页面中的说明在 Android Studio 中添加地图; Android Studio 报错

android studio 怎么添加module

android studio application怎么创建

android - android studio中的proguard错误