간혹 가다가 adb로 임시 odex 생성하는 명령어 ./dexopt-wrapper ~.jar a.odex $BOOTCLASSPATH 를 사용시에
위에 사진처럼 link_image[1863]: ***** missing essential tablesCANNOT LINK EXECUTABLE 255
에러와 함께 생성이 되지 않습니다.
$BOOTCLASS 명령어를 사용하기 때문에 Java 설치 또는 환경변수 등록이 제대로 되지 않았다는 답변을 받기 쉬운데요,
Java 가 제대로 설치되었는데도 해당 에러가 나오면 어찌 해결할 방법이 없습니다;;
저도 어제 새벽부터 저 에러때문에 어떻게 작업도 못하고 미치는 줄 알았습니다.
근데, 막상 해결하고나니 상당히 간단하더랍니다^^;
이 에러의 원인은 dexopt-wrapper 때문이었습니다.
adb를 이용하여 dexopt-wrapper를 다시 적용하셔야 합니다.
아래는 해결방법입니다.
일단 adb가 있는 폴더 내에 dexopt-wrapper를 넣어주세요.
그 다음, 기기를 PC에 연결시키고 도스창을 띄워 adb가 있는 폴더로 이동하신 후에
"adb push dexopt-wrapper /system/framework" 를 입력해주세요
이 부분에서 *** KB/s <0 bytes in ****.000s> 와 같은 창이 안나오신다면, system 영역이 R/W 체크가 되어있는지 확인해주세요.
(***는 숫자를 뜻합니다)
정상적으로 적용이 되셨으면 이제 "adb shell" 을 입력해주세요
root@android:/ # 이 뜨시면 "cd /system/framework" 를 입력해주세요
마지막으로 "chmod 777 dexopt-wrapper" 를 입력해주시면 정상적으로 퍼미션 적용까지 완료되었습니다.
이제 평소에 하시던 대로 " ./dexopt-wrapper ~.jar a.odex $BOOTCLASSPATH" 를 입력하시면,
정상적으로 임시 odex가 생성되는것을 보실 수 있을겁니다^^
아래는 지금까지 말씀드린 내용을 스크린샷으로 찍어둔 것이니 혹시 내용이 이해가 안되신다면 참고해주세요 :)