http://sseyoung513.blog.me/221069549509
http://blog.naver.com/sseyoung513/221064260156
0. 오류 내용
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 26.0.0-alpha1, 25.2.0. Examples include com.android.support:animated-vector-drawable:26.0.0-alpha1 andcom.android.support:mediarouter-v7:25.2.0 less... (Ctrl+F1) There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion.)
1. 오류가 나게 된 상황
안드로이드 구글 맵 예제 따라하려고
Google Play service를 추가하기 위해서
Project Structure(ctrl + alt + shift + s) 가서 library dependency를 추가하였다.
그 후에 오류가 생겼다.
2. 오류 이유
외부 라이브러리가
내가 명시하지 않은(명확히 적어두지 않은)
support 라이브러리를 참고해서
명시한 support 라이브러리와
버전이 다르다
는 것이다.
나의 경우는
Google Play service가 추가되면서
이러한 버전 충돌이 일어난 것이다.
3. 오류 해결
1) Gradle dependency report를 실행하여, dependency의 full tree를 확인한다.
- 안드로이드 스튜디오의 Terminal을 연다.
- gradlew -q dependencies app:dependencies --configuration compile 를 붙여 넣고 enter.
- ctrl+f로 버전 안 맞던 라이브러리를 검색한다.
- 나의 경우 이 방법으로 mediarouter가 내가 추가한 play-service 아래 있고, 버전이 업데이트가 안 되고 25.2.0을 쓴다는 것을
알 수 있다.
- '->' 표시는 업데이트된 버전을 가리킨다.
2) 메니페스트 파일에 dependency 추가
- 1)에서 트리보니 mediarouter 하위, appcompat가 26.0.0-alpha이기에 이걸로 통일시켰다.
(형광펜 부분 추가)
- 만일 위 방법이 안 통하면 해당하는 버전이 없는 것이므로, 버전을 전체적으로 낮추거나 disable해야 한다고 한다.
4. 참고 사이트
'공부하는 하스씨 > 안드로이드' 카테고리의 다른 글
텍스트 뷰에서 특정 라인 문자열 가져오기! (0) | 2018.08.07 |
---|---|
화면 관련한 상수들을 가져오는 코드 (0) | 2017.10.31 |
최신 안드로이드 스튜디오. 레이아웃 프리뷰 화면에 한글이 깨지는 경우. (0) | 2017.02.20 |
[스크랩] Android studio의 유용한 플러그인 (0) | 2017.02.13 |
Mockito 매뉴얼 한글화 (2010년) (0) | 2016.08.01 |