본문 바로가기

☆ 테마제작관련 ☆/테마제작강좌

컴파일 오류 해결하기 <Apk manager option 21>



Apk manager 컴파일(Compile) 오류 문제 해결하기 #1

디컴파일 오류관련해서 해당 관계파일을 매칭시켜서 오류를 해결하는 방법에 대해 포스팅해드렸는데요. 조금이라도 도움이 되었는지 궁금합니다 ㅎㅎ. 이제 디컴파일이 어느정도 잘되신다면 재밌게 테마작업을 하고 계실 텐데요. 이제 본격적인으로 테마제작에 도움이 되는 컴파일 오류 해결하기 강좌를 시작해볼까 합니다. 이 컴파일 관련오류도 <Option 21>이라는 오류가 나오게 됩니다. 그럼 컴파일관련 오류해결하기 첫 단계 로그분석을 해서 어떤곳에서 오류가 나는지와 나인패치관련 오류 바로 잡기 관련 포스팅을 시작할께요^^


본 강좌를 보시기 전에 아래 Apk manager 사용법과 디컴파일 오류 포스팅을 안보신분들은 꼭 먼저 읽어주신후 이 포스팅을 봐주세요. 처음 부터 이 포스팅을 보신 분이면 무슨 말인지 하나도 모르십니다.


▶ Apk manager 사용법 보러가기

 디컴파일 관련 오류 해결방법 보러가기












자료 포스팅 하는데 힘이 될 수 있도록

ViewOn 손가락 버튼 꾹 눌러주세요.

(로그인 안하셔도 됩니다)







Apk manager 컴파일 오류 나는 이유

테마작업을 조금이라도 해 보신 분이라면 컴파일 오류를 한번 이상씩은 경험하셨을 겁니다. 저는 수 백번 경험을 했겠죠 ㅎㅎ 사실 처음 아무것도 모르고 컴파일 옵션21관련 오류가 나면 대체 어디가 어디서 잘못됐는지 알 수가 없습니다. 하지만 Apk manager안에 어디서 오류가 나고 있는지 다 나온다는 걸 알고 계셨나요? 

저도 처음에는 거의 삽질하는 수준으로 이것저것 다 바꿔가면서 수정했던 기억이 납니다. 오늘 강좌는 테마를 처음 만드시는 분들 돌아가지 마시라고 길을 안내해드리는 강좌입니다.


가장 대표적인 예로 테마사님들의 파일을 받아서 조금 수정해보고 싶어서 디컴파일 까지 성공했는데 컴파일 하면 무조건 오류가 났을겁니다.(특히 창작테마), 

기능관련 테마 파일은 오류가 잘 나지 않습니다. 그래서 제가 배포해드린 테마파일 받아서 디컴해서 필요한 부분 컴파일 하면 60%이상은 다시 컴파일이 될겁니다. 


그래서 예전에는 원본을 디컴해서 다시 소스를 똑같이 맞춘 후 수정을 했는데요. 사실 대부분의 컴파일 오류는 나인패치에서 일어나고 있습니다. 이 나인패치만 수정해주시면 컴파일 오류의 50%이상을 해결할 수 있습니다. 그럼 그 해결의 소스는 어디 있을까요. 아래 포스팅글 보시면서 따라와 주세요.




Apk manager 컴파일 오류 분석하기

오늘은 제가 배포해드린 음각테마의 SystemUI.apk를 디컴파일 해서 컴파일 가능하도록 오류를 픽스하는 방법에 해 설명해 드리도록 하겠습니다. 우선 이미 수정되어진 SystemUI.apk를 아래 첨부파일로 첨부해 두었습니다. 갤럭시노트 유저시라면 Apkmanager로 디컴파일해보세요. 디컴파일은 아무 이상없이 잘됩니다.

SystemUI.apk




하지만 컴파일을 하게 되면 아래와같이 <Option 21> 오류가 나게 됩니다. 




<Option 21> 오류가 참 난해하지요? 하지만 이건 Log파일을 보면 쉽게 답을 얻으실수 있습니다.
아래 스샷에 처럼 Apkmanager최상위 폴더에 보면 Log.txt파일이 있습니다. 




메모장이던 텍스트에디터로 오픈을 해보세요. 그럼 날짜가 나오면서 해당날짜 시간에 오류가 난 항목이 쭈욱~~ 나옵니다.<잘안보이시니까 클릭해서 보세요>


여기서 보실건 전체가 아니가 오류가 나기 시작한 초반이 가장 중요합니다. 어디부분에서 문제가 일어나기 시작했는지가 중요한거겠죠. 그 밑에 오류는 일단 무시하세요. 위쪽의 오류만 해결하면 자연스럽게 사라집니다.
현재 Error가 나고 있는 부분은 나인패치가 들어간 .9 이미지 3개가 문제 되고 있네요.
tw_quick_panel_quick_setting_button_bg_normal.9.png
tw_quick_panel_quick_setting_button_bg_normal_base.9.png
tw_quick_panel_quick_setting_button_bg_pressed.9.png



나인패치 오류는 순정나인패지 부분을 편집하면서 정해진 규격이 아니고 사용자가 임의로 수정하게 될경우 7.zip으로 압축을 풀면 그대로 사용할 수 있지만 디컴파일하게 되면 나인패치 정보가 깨져서 다시 컴파일 하게 되면 오류가 나는겁니다. 아래 보시는것과 같이 같은 이름의 이미지가 2개로 나눠서 나인패치이미지와 일반이미지 로 생성된걸 알 수 있습니다. 









Apk manager 컴파일 오류 해결하기

그럼 저 나인패치는 어떻게 해결해야할까요? 제가 이미 테마 이미지 이식하기 강좌를 소개해드린적이 있는데 지금 Apk 디컴파일한 이유는 소스(Script)을 수정하기 위해서 입니다. 그래서 이미지는 다른 순정이미지로 대체해서 컴파일하면 됩니다. 그럼 소스관련 스크립은 수정이 가능하게 됩니다.


이 부분이 조금 어려우실 수 있겠지만 이렇게 순정으로 바꿔진 이미지들은 컴파일한 이후 다시 테마가 들어간 SystemUI.apk에서 resources.arsc와 수정된 xml만 덮어씌워주시면 됩니다.

아직 이해가 안가신다고요? 그럼 링크된 포스팅을 통해 테마 이미지 이식하기 강좌 확인해보세요.





우선 아래 보시는 이미지 중에 나이패치가 깨진 파일은 우선 삭제 해주세요. 안지워주시면 관련 파일이 이미 잘못된 이미지로 정의되어 있다고 하면서 오류납니다.

tw_quick_panel_quick_setting_button_bg_normal.png

tw_quick_panel_quick_setting_button_bg_normal_base.png

tw_quick_panel_quick_setting_button_bg_pressed.png


나인패치 이미지를 제외하고 같은 이름의 png를 파일 3개를 삭제하셨다면 아래 처럼 나인패치 이미지파일 3개만 남아있을겁니다.


해당파일은 순정에서 추출하셔도 되지만 음각테마는 순정파일도 없어서 임의 오류안나는 나인패치 파일로 수정하겠습니다.




디컴파일된 파일중에서 나인패치 오류가 안나고 있는 tw_quick_panel_notificaiton_panel_bg.9.png 와 오류가 나고있는 3개의 나인패치 이미지를 임의 폴더에 우선 복사해주세요.



아래처럼 Notificaiton_panel_bg.9.png파일을 복사해서 3개를 더만드세요.그리고 오류나고 있는 파일의 이름으로 모두 교체해주세요. (오류나는 나인패치 이름복사=>지우기=>복사된 파일에 이름바꾸기순)

- 이름복사하고 복사된 파일에 이름을 바꾸려고 하면 같은 이름이 있어서 수정이 안됩니다.



이젠 tw_quick_panel_notificaiton_panel_bg.9.png 복사된 3개의 파일에 이름만 바뀐 이미지 3개가 존재하죠? 이미지는 모두 같은 이미지겠지만



사실 이건 중요하지 않습니다. 지금 이파일은 컴파일 목적으로 이미지를 속여주는거니까요^^




오류가난 나인패치 이름을 가진 가짜 나인패치 이미지를 L:\Apk_Manager_5.0.2_azdesign\projects\SystemUI.apk\res\drawable-xhdpi안으로 복사해서 넣어주세요.



그리고 11번을 눌러서 컴파일 해보시면 아래처럼 컴파일이 잘 되는걸 볼 수 있습니다.



컴파일이 완료되었으면 시스템어플 등록이 아니니까 "N"을 눌러주시고.



이제 언사인 apk가 잘나왔는지 확인해볼까요? 

Apk_Manager_5.0.2_azdesign\place-apk-here-for-modding 폴더로 들어가 보세요.

아래처럼 unsignedSystemUI.apk가 생성된 걸 아실 수 있습니다.






이제 제 SystemUI.apk를 맘대로 수정하시면 됩니다.^^ 옵션21 컴파일 오류 해결 어렵지 않죠?


이제부터 스크립을 수정하셨다면 생성된 unsignedSystemUI.apk에서 resources.arsc와 수정하신 xml을 추출하셔서 배포해드린 음각 SystemUI.apk에 덮어씌워주신 후 적용해주시면 됩니다.


그렇다고 제 테마파일 맘대로 배포하시면 안되는거 아시죠?? 



이상으로 나인패치관련 컴파일 오류 옵션21 해결방법에 대해 포스팅 해드렸습니다. 이후 태그관련 , xml관련, 해외 자료 포팅을 위한 오덱스와 id매칭 등에 관해 순차적으로 포스팅 해드릴께요.





이상으로   컴파일 오류 해결하기 <Apk manager option 21> 포스팅을 마치도록하겠습니다.





포스팅 내용이 유익하셨다면 아래 ViewOn버튼 꾹 눌러주시고 

응원의 댓글 부탁드립니다.^^


조금이나마 테마작업하는데 도움이 되어드리고자 포스팅 하고 있는  Azdesign™ 입니다.^^






* 필  독 *

- 블로그내 모든 포스팅 내용 도용 및 2차배포는 금지합니다. -

루팅관련 자료 사용으로 인한 소프트웨어,하드웨어 오류에 대한 책임은 전적으로 본인에게 있습니다.

(항상 자료 사용하시기 전에 백업을 필수로 해주시고 자신의 기종과펌웨어 버젼을 확인하세요)