2013-12-16 51 views
31

我收到了這個Froyo(2.2)我用來製作應用程序的設備。 當我嘗試運行應用程序直接向設備它顯示了一個錯誤,說「失敗[INSTALL_FAILED_OLDER_SDK]」在Android Studio中意味着什麼?

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> 
+0

你的應用程序將運行的最小sdk是多少?也許您的應用正在爲比您的設備更高的版本創建。 – Houseman

+0

我正在使用api級別** 8 ** –

+0

您可以發佈您的清單嗎? – hichris123

回答

20

此錯誤

Failure [INSTALL_FAILED_OLDER_SDK] 

意味着你要安裝具有在其清單較高minSdkVersion指定的應用程序比設備的API級別。將該數字更改爲8,它應該可以工作。我不確定其他錯誤,但可能與此相關。

+0

是的,我已經在使用API​​級別** 8 **時發生錯誤。 –

+0

我試圖用3做一個hello world,但仍然無法運行。 – baash05

+0

我既不設置minSdk也不設置targetSdk。但是在安裝APK時出現此錯誤。我甚至反編譯最終的APK,並且沒有min/target屬性。 –

0

在您的清單文件中package屬性設置爲com.test.helloworld但是您的活動類在不同的包中。您MyActivity類包更改爲com.example.helloworld

4

確保你沒有minSdkVersion集你build.gradle比8更高。如果你不指定它在所有的值,它應該在你的AndroidManfiest.xml使用的值,似乎已經適當設置。

+3

我在哪裏可以看到build.gradle文件在我的項目中 – praveen

+0

在您的項目編輯器下的「Gradle Scripts」 –

+0

我沒有設置minSdk和targetSdk。但是在安裝APK時出現此錯誤。我甚至反編譯最終的APK,並且沒有min/target屬性。 –

3

只是刪除uses-sdk標籤適用於我這樣的問題。

23

後,我在build.gradle文件改變

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

它的工作原理

+1

這確實是正確的答案。 targetSdkVersion不應該使用'L'作爲設備。 OP應該接受這個正確的答案。找到了一些很多答案,都沒有解決這個問題。 –

+0

@秦正權這裏defaultConfing我在AndroidManifest.xml中沒有看到它,我在哪裏可以找到它? – iqueqiorio

+1

@iqueqiorio in'build.gradle'文件 – chengbo

10

除了在build.gradle檢查權minSdkVersion,請確保您已經安裝了您首選的Android版本的所有必要tools,正確SDK PlatformSDK Manager。在Android Studio中克利克在工具 - >的Android - >SDK管理器。然後安裝在最低(爲Android 2.2模擬器無):

  • Android SDK工具
  • 的Android SDK平臺的工具
  • Android SDK中構建工具(最新)
  • 的Android 2。2(API 8)
    • SDK平臺
    • 谷歌的API

這是對我工作。

+0

謝謝..這是完美的 – baash05

-1

更改文件的AndroidManifest.xml

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

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

失敗[INSTALL_FAILED_OLDER_SDK]基本上意味着安裝失敗,由於具有較早的SDK版本比指定的targetSdkVersion目標位置(AVD /設備)的應用程序。

N/B的Froyo 2.2 API 8

爲了解決這個問題簡單地改變

targetSdkVersion = 「17」targetSdkVersion = 「8」

歡呼聲。

0

我修復了這個問題。設備系統版本比sdk minSdkVersion更老。 我剛剛將androidS的minSdkVersion修改爲19 ,目標是我的聯繫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->項目結構 - >刻面 - > Android的gradle產出,然後進行修改,從android_L編譯SDK版本至19

抱歉,我沒有足夠的聲譽添加圖片

1

確保選擇運行/調試配置是磨損或移動,根據您在安卓工作室的安裝...

0

這是因爲你的手機有比你的應用程序更舊的sdk版本.. !!! 這意味着你的應用程序需要sdk版本假設棒棒糖,但你的手機版本kitkat。

1

失敗[INSTALL_FAILED_OLDER_SDK]

對於三星注3我只需編輯AndroidManifest.xml文件,並添加以下代碼:

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17"/> 
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' 
}