Android StudioにてFailure [INSTALL_FAILED_OLDER_SDK]となる問題の対応

2014/8/21 14062hit

Android StudioにてFailure [INSTALL_FAILED_OLDER_SDK]となりアプリを実行できない場合の対応方法を紹介します。
この問題はcompileSdkVersionおよびtargetSdkVersionがインストールされていない場合に発生します。

Android-L向けのアプリを作る場合

全面訂正
下記の方法ではAndroidWearのSDKを使用しLの新しいAPIが一切使用できなくなるという問題が有ることが判明しました。
正しくはAndroid-L向けの新しいAPIを使用するには以下のようにminSdkVersionに'L'を指定する必要があります。
これによりKitKat以前の全てのアプリと互換性を持たせることができなくなります。
Lは現在Preview版なのであくまで開発版であることを明示するためのものと思われます。
またサポートライブラリーも現在旧バージョンに対応できていません。
この問題は現在対策中で解決される見込みのようです。


apply plugin: 'com.android.application'

android {
compileSdkVersion 'android-L'
buildToolsVersion "20.0.0"
defaultConfig {
minSdkVersion 'L'
applicationId "firespeed.org.hoge"
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:appcompat-v7:20+'

}

Android-L向けのアプリを作るときはご注意ください。

追追記:
正式版ではありませんが現在Android-Lの新しいAPIを互換性をもたせたまま制作する方法があるようです。
この方法については後日紹介します。


そこで、SDK Managerで対象のSDK Platformファイルをダウンロードすれば解決するのですが、罠なのがAndroid-Lの対応
当初、Android−Lのバージョンコードは固定の数字ではなく、'L’という文字が当てはめられていて

android {
compileSdkVersion ’android-L’
buildToolsVersion "20.0.0"
defaultConfig {
minSdkVersion 14
applicationId "firespeed.org.hoge"
targetSdkVersion 'L'
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

のように表示しろと書かれていたのですが、SDKのバージョンアップしAndroid-Lのバージョンコードが20となったため
以下のように指定しないといけなくなりました。
android {
compileSdkVersion 20
buildToolsVersion "20.0.0"
defaultConfig {
minSdkVersion 14
applicationId "firespeed.org.hoge"
targetSdkVersion 20
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

前:データレイヤーイベントを取り扱う 次:Android Lollipopの概要

関連キーワード

[Android][Java][モバイル][IT]

コメントを投稿する