안녕하세요 철사마 입니다.
안드로이드 스튜디오를 하면서 황당하게 발생하는 에러가 있어서 해결방법 정리하였습니다.
저처럼 당황해서 놀라지 마시길 바라면서 정리해 보았습니다.. ㅠ^ㅠ
황당한 에러는 디자인 뷰 영역 에러 입니다.
이게 왜 황당하냐면 디자인 뷰 영역에 어떤 컨텐츠를 넣어도 보이지 않고 위치도 지정할 수 없고 에러만 계속 뜹니다....
빌드하면 제대로 나오지도 않아서 작업을 할 수 가 없습니다..;;;
에러 문구는 아래와 같습니다.
Failed to load AppCompat ActionBar with unknown error.
대충 해석하면... "알수 없는 에러로 AppCompat ActionBar를 로드하지 못합니다."
난 아무 것도 하지 않았는데?.. 왜 이런 에러를.. 그리고 하단에는 이런 에러 문구가 있습니다.
This view is not constrained.
It only has designtime positions, so it will jump to (0,0) at runtime unless you add the constraints The layout editor allows you to place widgets anywhere on the canvas, and it records the current position with designtime attributes (such as layout_editor_absoluteX).
These attributes are not applied at runtime, so if you push your layout on a device, the widgets may appear in a different location than shown in the editor.
To fix this, make sure a widget has both horizontal and vertical constraints by dragging from the edge connections.
대충 해석하면... "이 뷰는 강제적인 것이 없어서... 제약 조건을 추가하지 않으면 네가 추가한건 0.0으로 위치합니다. 블라블라.. 네가 원하는 것이랑 다르게 나올 수 있다.. 블라블라.." 당췌 몬소린지..
여튼 아무것도 안하고 프로그램 실행만 누른 입장에서 에러가 뭔가 억울합니다.
마치 컴맹이 컴터 키고 블루스크린 뜨면 왠지 내 손이 똥손이라 망가진 것 같고 막... ㅠㅠ
하지만! 안심하세요~ 해결은 생각보다 쉽습니다.
우선 아래 위치로 이동해서 명시한 부분의 해당 소스를 수정해 줍니다.
1. Gradle Scripts에서 build.gradle (Module: app) 파일을 더블클릭하여 열어줍니다.
2. 23번 라인 implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'에서 alpha3을 alpha1으로 수정합니다.
코드를 수정한 화면입니다.
수정을 하면 안드로이드 스튜디오 코드 편집창 상단 우측에 [Sync Now] 라는 바가 생겨납니다.
그 버튼을 눌러서 동기화를 시켜줍니다.
동기화를 눌러주면 동기화가 되면서 이것저것 열심히 적용됩니다.
적용이 다 된후에 다시 레이아웃(Layout) 화면으로 이동해 봅니다.
이제 화면상에 콘텐츠가 제대로 레이아웃에 나타나고 에러도 발생하지 않습니다.
이 오류는 구글 검색해 보니 안드로이드 스튜디오 버그로 안드로이드 스튜디오 3.1.3 버전 기준에서 다운로드 받으면 발생하는 버그입니다.
앞으로 업데이트되는 버전에서는 해결되어 있을 것 같습니다. (제발~~)
처음 시작하는 초심자 입장에서 아무것도 안했어도 왠지 내가 잘못한 건 아닐까 하는 불안감이 생기는 오류였습니다.
다행히 해결 방법은 어렵지 않지만~~
모르면 아무것도 시작할 수 없는 그런 치명적인 버그였습니다.
쉽게 수정하시고 코딩을 시작해보세요!!