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 를 선택해주면


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




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


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


앱인벤터(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