빌드






Generate Signed APK 수행시 또 이상한 에러가 발생





생전 처음보는 에러가 코드가 아닌 xml 파일에서 발생하였다.

 Error:(449) Error: Found byte-order-mark in the middle of a file [ByteOrderMark]




에러부분으로 이동해보니



<item>Leadership</item>


?? 이게 전부다. 이상한 점이 전혀 없다.




또 원인을 찾아 정보의 바다 구글을 헤맸다.


찾아보니 ByteOrderMark = BOM 이란 자식이 포함되어있기 때문이란다.


그래서 이 BOM 이란 놈을 제거 해줘야 한다는데


구글에 나온 BOM 제거 방법을 해봐도 되지 않는다.


툴 깔아서 BOM 제거를 해도 똑같다.



참나 대체 왜 내가 하면 안되는거지



대체 뭐가 문제냐고!!!


자포자기로 저 부분을 한번 지우고 손수 하나하나 똑같이 다시 타이핑을 했다.


그리고 다시 빌드..



?!!!?!



뭐지 에러가 사라졌다.


정상적으로 apk가 생성되었다.


뭐 이따구가 다있지...



깃허브 커밋을 살펴 보았다.




?????


뭐가 다른거지???



어이가 털린다.




그래서 다시 에러가 난 상태로 돌려놓은뒤


 위 프로젝트를 다른 컴퓨터에서 import 해서 살펴보기로 했다.


검색하다보니 다른 컴퓨터에서는 되었다는 글을 보았기 때문이다.




그래서 import 후 똑같이 Generate Apk Signed를 실행했더니


똑같은 곳에서 똑같은 에러가 발생


그런데 이상한 점이 발견되었다.






보이는가 저 이상한 점들..


Leadership 앞에 점 하나가 있다.


다른 에러부분에도 보니 뒤에 점 2개가 있다.



저게 문제였나보다.


저걸 지워주니 에러가 사라졌다.



저게 BOM이라는 그 악성 에러였던걸까




추측으로는.. 점을 지움으로써 BOM이 사라진 것 같다.


에러가 계속 났었던건 눈에 보이지 않으니


<item>Leadership·</item>


이걸 계속 복붙하고 있었다. 그러니 보이지 않는 BOM인가 뭔가 저 점이 계속 복붙되고 있었던 것이다


그리고 구글 검색했을 때도 메모장에 붙여넣기 한 후 저장해서 다시 붙여넣으라는 방법도 있었는데 

같은 이유로 에러가 사라지지 않았던 것 같다.



그래서 직접 지우고 타이핑할 때 BOM이 지워진 것 같다.



그런데 왜!!


내 컴퓨터에서는 표시되지 않고 다른 컴퓨터에서는 표시가 된 걸까??


정말 짜증나는 코딩의 세계다



BOM에 대한 에러를 찾아보면 글이 상당히 많고 이게 뭔지도 다 나와있으니 더 이상 언급하기도 싫다.


내 시간을 통째로 빼앗아 가버렸으니..



혹시 이런 문제를 겪고 계신 분이 있으시다면 에러난 부분을 지우고 다시 타이핑해보시길 추천한다.


그래도 안되면 검색에서 나오는 해결법을 시도해보시는게 좋을 것 같다.





  1. 2017.09.18 17:20

    비밀댓글입니다






뜬금 apk 빌드하는데 이런 에러가 떴다.


Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;



검색해보니 메소드 6만5천줄 초과인가 뭔가해서 멀티덱스 를 추가해줘야되고 이런 답변들이 있었는데 해봐도 되지 않았다


그러다가 라이브러리?가 중복실행되는 케이스도 있따고 하여 그래들 파일에 라이브러리 코드랑 관련이 있어보이는걸 삭제했다.


디펜던시에


dependencies {

compile fileTree(include: ['*.jar'], dir: 'libs') //요놈을 지웠다

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'gun0912.ted:tedpermission:1.0.2'
testCompile 'junit:junit:4.12'
}



그랬더니 에러가 발생하지 않았다..


+ Recent posts

티스토리 툴바