Android Studio (안드로이드 스튜디오) 에서 레이아웃을 짜려고 보니 아래 사진과 같이 TextView가 있음에도 나타나지 않는 현상이 발생했다.


이런 경우 디자인이 안보이기 때문에 작업을 수행할 수 없다.


버전 : Android Studio 3.1.3




어디서 에러가 났는지 확인해보니


Render problem


Failed to load AppCompat ActionBar with unknown error.





[ 해결 방법 ]


app > bulid.gradle


수정 전

compileSdkVersion 28

targetSdkVersion 28

implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'


수정 후

compileSdkVersion 27

targetSdkVersion 27

implementation 'com.android.support:appcompat-v7:27.0.2'


소스를 보면 알겠지만 Sdk 버전을 낮춰주는 것이다.






소스를 수정한 뒤, File > Invalidate Caches / Restart 에서 Invalidate and Restart 를 선택해주면


아래와 같이 정상적으로 작동하는 것을 알 수 있다.




여러 가지 시도를 해본 결과 포스팅에서 설명한 방법으로 해결했다.


혹시 더 정확한 방법을 아신다면 댓글 바랍니다.

  1. 감사합니다 2018.07.06 18:24 신고

    덕분에 해결했습니다 왜 오류나게 만들어놓고 수정을 안하는지 모르겠네요...ㅠㅠㅠ

  2. 감사합니다 2018.08.07 11:06 신고

    환경구축 하는데만 3시간째.. 계속 다른데서 오류남 이거는 덕분에 해결했네요

  3. wallaon 2018.08.28 01:02 신고

    더 정확한 방법 찾았어요 ㅠ 저도 답답해서 api28 uninstall 하려다가 조금 더 검색해보니..

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    to
    <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

    Base 추가하니 해결 되었어요.

    • 듈선장 2018.08.28 13:06 신고

      맞는지 모르겠지만
      Add an Activity to Mobile 페이지에서

      empty Activity로 선택했을때 Base.를 붙이면 되지만

      그외에선 안되더라구여... 뭐 그렇게 다되신다면 그게 좋을 것같긴합니다.

  4. 듈선장 2018.08.28 11:59 신고

    안드로이드 초기구축하는데 고생하고있었습니다...
    님덕분에 해결하고갑니다. 매우감사합니다.!!

  5. 감사합니다 2018.08.30 23:25 신고

    와 진짜 감사합니다 Basic Activity를 쓰고싶었는데
    gradle에서 Base붙이는 방법으로는 Empty Activity만 되길래 답답하던 중에
    이걸로 해결했습니다.
    참고로 저는 implementation 'com.android.support:design:27.0.2' 이것도 추가해야 되더라구요

  6. choing 2018.09.05 23:33 신고

    몇일 삽질했는데 덕분에 해결했습니다 정말 감사합니다!!!!

  7. Harry 2018.09.13 13:58 신고

    이 문제때문에 골치 아팠는데 감사합니다.

  8. ddok 2018.09.15 23:54 신고

    감사합니다 덕분에 해결했네요^^


앱인벤터(app inventor)에는 스크린(Screen)을 추가할 수 있는 기능이 있지만 복사하는 기능은 없다.

그리고 스크린을 만들 때 이름을 지정할 수 있지만 수정하는 기능 또한 없다.




하지만 방법이 있다.


준비물


1. 노트패드 : https://notepad-plus-plus.org/


2. 7zip : https://www.7-zip.org/


굳이 노트패드가 아니라도 다른 편집기를 사용해도 된다. 메모장을 사용하지 않는 이유는 간혹 글자가 깨지는 등 인코딩 문제가 발생하기 때문이다.


7zip을 사용하는 이유는 aia 파일 내용을 수정하기 위해서이다.



1. 'Export selected project (.aia) to my computer' 을 클릭하여 수정할 aia 파일을 다운 받는다.




2. AIA 파일을 우클릭하여 [7-Zip] -> [압축파일열기] 을 한다.


3. [src] -> [appinventor] -> [ai_ID] -> [project name] 순서로 들어가면 아래와 같을 것이다. (스크린명이나 갯수, 아이콘 모양은 차이가 있을 수 있다.)



이제 파일을 간단한 수정을 통해 스크린을 복사, 수정할 수 있고 덤으로 블록, 디자이너들을 복사할 수 있다.

이는 여러 스크린에서 반복되는 블록, 디자이너가 있을 경우 매우 유용한 방법이다.


ex) Screen1의 디자이너와 블록을 Screen2에서도 사용하고 싶다.


Screen1의 내용은 아래 사진과 같다.




방법


1. 7zip안의 파일을 밖으로 끌어낸다.

2. Screen1.bky 파일을 노트패드를 이용하여 실행한 후 소스들을 전부 복사한다. ('Ctrl + a' 단축키를 사용하면 전체 선택을 할 수 있다)

3. Screen2.bky 파일에 붙여넣기를 한다.

4. Screen1.scm 파일을 노트패드를 이용하여 실행한 후 소스를을 전부 복사한다.

5. Screen2.scm 파일에 있는 내용을 지우고 위에서 복사한 소스를 붙여넣기를 한다.

6. Screen2.scm에서 $Name을 찾고 스크린 명을 고쳐준다. 

(Screen1에서 소스를 복사했기 때문에 Screen1이라 써있지만 우리가 사용할 스크린은 Screen2이기 때문이다.)

7. 수정된 Screen2.bky, Screen1.scm 파일을 다시 7zip 안으로 넣어준다. 파일을 압축파일로 복사 하시겠습니까? 란 문구가 나오면 '예(Y)' 를 선택한다.


이제 test.aia 파일을 다시 앱인벤터에 저장해주면 되는데 현재 test.aia 라는 프로젝트가 존재하기 때문에 수정 전 프로젝트를 삭제하고 저장을 해야한다.

또는 프로젝트 수정을 위해 aia 파일을 컴퓨터로 저장하기 전 'save project as' 를 사용하여 다른 이름으로 저장하고 사용해도 된다.


컴퓨터에 저장된 aia 파일을 'improt project (.aia) from my computer'을 클릭하여 가져와준다.



그리고 프로젝트를 열어보면 스크린, 디자이너, 블록 모두 복사 된 것을 확인할 수 있다.


이를 응용하여 스크린 이름 변경, 스크린 추가 및 수정 등을 할 수 있다.

+ Recent posts

티스토리 툴바