☰ Dev.Life

Post

[Fix]uses-sdk:minSdkVersion 19 cannot be smaller than version L

Android Studio 0.8 업데이트 이후 Android L Preview API 20 레벨 추가로 Kitkat(API 19)기준으로 작성된 프로젝트에서, appcompat-v7등의 추가 라이브러리 사용시 다음과 같은 Error가 발생한다면, build.gradle 파일의 dependencies 항목에 추가된 라이브러리들이 최신버전을 사용하게 지정되어 있기 때문이다.

uses-sdk:minSdkVersion 19 cannot be smaller than version L declared in library com.android.support:appcompat-v7:21.0.0-rc1
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 19 cannot be smaller than version L declared in library com.android.support:appcompat-v7:21.0.0-rc1

build.gradle

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.android.support:mediarouter-v7:+'
    compile 'com.google.android.gms:play-services:+'
}

Solution

API 19 레벨의 버전을 사용하게끔 지정. 19. 의 경우, 19 버전대에서 최신버전이 선택되고, 특정 버전의 경우에는 19.0.1 처럼 명시해주면 된다.

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.android.support:mediarouter-v7:19.+'
    compile 'com.google.android.gms:play-services:+'
}

해당 라이브러리의 버전 히스토리는 [Android-Install-Directory]\sdk\extras\android\m2repository\com\android\support\ 폴더의 라이브러리 폴더내의 maven-metadata.xml파일에서 확인할 수 있다.

예를 들어, appcompat-v7의 경우 [Android-Install-Directory]\sdk\extras\android\m2repository\com\android\support\appcompat-v7\maven-metadata.xml

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>com.android.support</groupId>
  <artifactId>appcompat-v7</artifactId>
  <version>18.0.0</version>
  <versioning>
    <versions>
      <version>18.0.0</version>
      <version>19.0.0</version>
      <version>19.0.1</version>
      <version>19.1.0</version>
      <version>20.0.0</version>
      <version>21.0.0-rc1</version>
    </versions>
    <lastUpdated>20140620222548</lastUpdated>
  </versioning>
</metadata>

REFERENCE

티스토리 툴바