티스토리 뷰

반응형

Android XML Design이 보이지 않는 오류 해결법


최근 android studio를 이용해 android 공부를 시작했다. 근데 지금까지 사용해왔던 언어 프로그램(Visual studio, Eclipse )에 비해 너무도 무겁고 잔 버그가 많은 것 같다. 프로그램 로딩도 오래 걸릴 뿐더러 설치해야 할 것도 매우 많고(확장성이 커서 그런가…) 또 내가 아직 배우지 못한 것도 많아 이상한 설정을 건드린 것도 있을 수 있겠지만, 그냥 첫 화면부터 Problem이 존재한다는데…. 이거….




아무튼 그 중 xml 파일의 design탭에서 화면이 보이지 않는 문제에 대해 해결했기 때문에 잊지 않기 위해 적어 놓으려 한다. 

프로젝트를 먼저 생성하자. 여러 종류가 있지만 다 해당 problem이 발생하는 것으로 보이기 때문에 아무거나 선택해 프로젝트를 생성하자.






프로젝트가 생성되면 바로 xml 파일의 ‘Design’을 보여주는데 사진과 같이 ‘android…CoordinatorLayout’ 이라 배경 가운데 적혀 있고, 어떠한 컴포넌트가 보이지 않는다. 버튼을 생성해보아도 보이지 않으니 답답하다.

또한 사진의 빨간 버튼을 누르면 Render problem이 나오는데 아무리 refresh 버튼을 눌러도 없어지지 않는다. 이건 일단 보류하자

 


이제 design이 보이지 않는 문제를 해결해보자.

여러 구글링을 해본 결과 진짜 많은 해결법들이 존재했다. 그 중에는 되는 것이 있고, 안되는 것이 있었는데 필자는 하나하나 고치고 수행해보고 한 것이 아닌 그냥 2~3개 해보고 되나, 이런 식으로 확인했기 때문에 확실하지 않을 수 있다.



1. SDK 문제


설정에 맞는 SDK를 다운로드 받지 않아 발생할 수 있는 문제라고 한다. 현재 Coordinator문제가 아닌 다른 요소 문제로 render problem이 일어나고 또한 Android studio 설치를 방금했다면 이 해결책을 해보자.




위 사진은 Android studio 오른쪽 상단에 여러 Tool들이 있는 곳이다.

빨간 사각형으로 표시되어 있는 것을 눌러보자. 이 버튼은 SDK Manager로 Software Development Kit manager 약자로 여러 버전의 SDK를 다운로드 받거나 수정(삭제)할 수 있다.






SDK Platforms: 현재 DesignAPI Version이 다운로드가 되어있는지, 또한 추후 개발할 버전의 SDK가 다운로드 되어 있지 않다면 미리 다운로드 하자. 필자는 marshmallow까지 다운로드 받았다. 이게 답은 아니고, 그냥 각자 원하는 대로 하면 된다.


SDK Tools: 여러 SDK 관련 Tool들을 다운로드 받을 수 있다. 필자도 공부 중인 책을 따라 체크하고 다운로드 받은 상태이다. 기본 바탕은 이러한 상태에서 실행하는 것이 좋을 것이다.


다운로드 방법은 다운로드 할 항목을 다 체크하고 오른쪽 아래 ‘Ok’를 누르면 다운로드가 진행된다.



2. Gradle


Gradle 이란 간단히 설명하면 빌드 배포 도구를 뜻합니다. Android studio에서 project를 형성하면 Gradle이 생긴 것을 확인할 수 있다.


Gradle, , Build systemAndroid studio는 서로 독립적이다. 예를 들어서 Eclipse의 경우, build 과정을 eclipse에서 담당했으나 Android studio build과정을 Gradle 통해서 전부 수행한다. 그렇기 때문에 Android studio의 설정(Project)Gradle의 설정이 알맞지 않은 경우 에러가 나게 된다.


이렇게 생각하면 왜 분리해놨지?’ 라 생각할 수 있는데, 분리가 되어 있기에 더 깔끔하게 관리할 수 있다고 한다. 제대로 알아보고자 하면 ‘Gradle’에 대해 구글링하면 상세한 설명이 나오니 참고.


또 여기에 설명을 더하자면, build.gradle 파일에서 설정하는 정보들은 SDK 매니저에서 설치한 모듈의 버전에 의존적이다. 예를 들어서 SDK 매니저에서는 API 27에 해당하는 플랫폼이 설치되어 있지 않은데





이제 이 Gradle 문제를 고쳐보자. 구글링하면 프로그래밍 관련되어 많이 나오는 stack overflow에 의하면 SDK Version 28이 되면서 여러 문제가 발생했다고 한다. à 확실히는 모른다그렇기 때문에 이걸 SDK Version 27로 돌려주는 과정을 할 것이다.


Project – app – Gradle Scripts – build.gradle (Module: app) 을 들어가자.






다음과 같은 상태일 것이다. (완벽히 같지는 않을 수 있다)


여기서 몇 가지를 수정해주어야 하는데 수정할 부분은 박스로 표시해두었고, 설명을 아래 참조를 하면 된다.

 

compileSdkVersion: 컴파일 할 때, 사용할 SDK 버전을 지정. (값이 27이면 API 버전이 27인 SDK를 사용해 컴파일 한다는 것을 의미)


targetSdkVersion: 실행을 위해 검증한 SDK 버전이 어떤 것인지 지정. (값이 27이라 해서 그 미만 버전에서 동작하지 않는 것은 아니다. 하지만 버전 27은 설치 되어 있어야 함)


... appcomat ... : dependencies 안에 들어 있는 항목들 중 하나로 최근 API에서는 지원하지 않는 예전 단말들을 지원하기 위한 추가 클래스들이 들어가 있는 외부 라이브러리를 지정. 보통 appcompat라는 이름의 모듈로 제공된다.

(출처: Do it! 안드로이드 앱 프로그래밍)

설명을 읽으니 오류가 발생할 곳이 보이는가?


SDK 매니저에서는 API 28에 해당하는 플랫폼을 설치하지 않았는데 28 버전을 이용해 컴파일 하도록 compileSdkVersion의 값을 28으로 설정한다면 Android studio에서 빌드 시에 오류가 발생한다. 따라서 현재 PC의 SDK 매너지에서 설치한 모듈의 버전과 프로젝트의 위 정보가 서로 일치하여야 한다. (그래서 아까 SDK를 다운로드 한 것이라고 보면 된다)


이러한 설명에도 불구하고 28버전에는 에러가 난다.(왜!!!!) 그래서 27버전으로 변경해주었다.

다음과 같이 수정하자.


compileSdkVersion 27
targetSdkVersion 27
implement ‘com.android.support:appcompat-v7:27.1.1’
implement ‘com.android.support:design:27.1.1’





(Empty activity가 아니면 aappcompat을 제외하고 다른 이름으로 또 버전 같은 것이 적혀있을 수 있다. 그러면 다 27.1.1로 수정해보자)

그리고 오른쪽 상단에 ‘Sync Now’를 클릭한다.






다음과 같이 design이 보이지 않던 문제가 해결된 것을 볼 수 있다.

하지만 render problem에 대해서는 refresh를 눌러도 해결되지 않는다. 무슨 문제인지는 차차 알아보도록 하겠다.


320x100
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함