2014-10-20 3 views
2

최신 버전의 Android 앱으로 업그레이드 한 후 런타임 예외 "android.content.res.Resources $ NotFoundException"로 인해 충돌이 발생하는 작동중인 Android 프로젝트가 있습니다. SDK 빌드 도구 내 주 활동의 onCreate()에서 setContentView()를 호출하면 충돌이 발생합니다. 예외에서 제공된 자원 ID는 주 활동의 레이아웃 중 하나와 일치합니다. 이전 버전의 빌드 도구 (project.properties 파일에 "sdk.buildtools = 20.0"줄을 배치하고 SDK 관리자를 통해 이전 버전을 설치)를 지정하여이 문제를 해결할 수있었습니다. 실험에서 나는 빌드 도구의 최신 버전 (이 글을 쓰는 시점에서 21.0.1)과 버전 21이 충돌을 일으킨다는 것을 발견했다. 그러나 버전 20 (또는 이전 버전)을 사용하면 문제를 해결할 수 있습니다.

빌드 도구의 최신 버전이 완전히 손상되었다고 생각하고 있습니다. 따라서이 문제를 일으키는 프로젝트에 이상한 점이 있다고 생각합니다. 그것을 본 사람?

나는 많은 다른 SO 게시물이 오류에 대한 일반적인 제안을하려고 않았다고도 언급해야한다 - 이클립스 프로젝트를 청소의 R.java를 삭제하고 다시 생성, 다시 시작 등

편집 :이 실제로 빌드 도구에서 버그로 판명났습니다. aapt.exe 패치를 지적 해 주신 Adam에게 감사드립니다. 또한 오늘 더 깊이 파고 들자 APK 내용을 추출하여 "나쁜"버전이 resources.arsc 파일을 완전히 잃어 버렸음을 발견했습니다. 아마도이 스레드를 통해 다른 사람에게 단서를 제공 할 것입니다.

답변

1

정말 건축 도구에 bug입니다. 아마 다음 버전에서 수정 될 것입니다.

여기 해결 방법은 https://code.google.com/p/android/issues/detail?id=77629#c76입니다. 나를 위해 작동합니다. 버전 21.0.1에서 사용하십시오.

+0

굉장, 저 스레드를 가르쳐 줘서 고마워! 패치 된 aapt.exe를 설치하면 내 문제가 실제로 수정되었습니다 (빌드 도구 21.0.2에서 수정 될 것 같은 소리가납니다). 이상하게도 Google 버그 신고서에보고 된 aapt 오류 또는 충돌이 발생하지 않습니다. 자세한 출력을 살펴 보았고 명령 줄에서 수동으로 aapt를 실행하여 확인했습니다. 아무 것도 잘못보고하지 않습니다. 어쨌든 감사합니다! – dfinn

관련 문제