Eclipse

It is indirectly referenced from required .class files

_침묵_ 2010. 9. 30. 23:20
플러그인 개발 시에 참조하는 플러그인이 (또!) 참조하는 클래스를 몰라서(?) 에러가 발생했다.

정확히는 안드로이드 ddms 플러그인을 참조하는데, 그 안에 있는 ddmlib.jar 와 ddmuilib.jar 내의 클래스를 참조하지 못하는 경우였다.

The type com.android.ddmlib.IDevice cannot be resolved. It is indirectly referenced from required .class files

해답은 이클립스존(www.eclipsezone.com)에서 얻었다.

약간의 이해를 도와주는 답변을 옮겨본다.
That's when A.class -> B.class, and B.class -> C.class, but you don't have C.class. So although A's dependency is directly met (you can see B), it's not possible to resolve B, since it requires C.

A클래스가 B클래스를 참조하고, B클래스가 C클래스를 참조한다고 했을 때.
A클래스가 B클래스를 볼 수 있다고 해도 C클래스를 모르기 때문에 B클래스를 이해(resolve)할 수 없다.

완벽히 이해를 못한 관계로 대답의 원문을 그대로 옮겨 놓는다.
This is most often due to a limitation in the way PDE handles classpaths for external plug-ins. You can fix it by either adding the unneeded dependency, or by importing the dependent plug-in as a binary project, which allows it to have its own "node" in the classpath chain.

이 에러는 PDE가 외부 플러그인의 클래스패스를 처리하는데에 제약이 있어서 발생하며,
불필요한 의존성을 추가하거나 (방법을 모르겠음)
플러그인을 바이너리 프로젝트로 임포트해버리면 해결된다. (이걸로 해결~)

클래스패스 체인에 한 자리 차지할 수 있다?

'Eclipse' 카테고리의 다른 글

Eclipse UI Guidlines  (0) 2010.10.01
이클립스 한글 언어팩 설치  (2) 2010.08.03
Eclipse 4.0 SDK 등장  (0) 2010.08.02