2010-02-27 3 views
22

에서 참조한 메서드 XXX를 찾을 수 없습니다. 두 개의 안드로이드 프로젝트가 있고 ProjA에 ProjB가 필요합니다 (Eclipse 속성> Java 빌드 경로> 프로젝트> 추가> ProjB). Eclipse에서 모든 것이 잘 컴파일되지만 ProjA를 실행하면 오류가 발생합니다.메서드 YYY

Could not find method XXX, referenced from method YYY.

여기서 XXX는 ProjB의 메소드입니다.

어떻게 설정을 수정할 수 있습니까?

+0

앱이 시작될 때 런타임에 classnotfound 오류를 포함하여 이와 동일한 상황이 발생했습니다. 해결책 : 라이브러리 프로젝트 소스 폴더를 빌드 경로에 추가하십시오! –

+0

나는 똑같은 문제가있다! 그리고 나는 모든 것을 시도했다 : 프로젝트 레퍼런스를 추가하는 것 (Commonsware가 제안한대로), JAR-fil를 생성하고 ProjA로 가져 오는 것 - 아무 것도 작동하지 않는다! – Ted

+1

두 가지 옵션이 있습니다. 1) ProjB를 소위 "Android 라이브러리"(승인 된 답변 참조)로 만듭니다. 2) ProjB에 리소스 (레이아웃, 드로블 등)가없는 경우 일반적인 Java 프로젝트 (Android 이외의 프로젝트)를 만들고 android.jar 이클립스의 Libraries 탭에 외부 jar로 저장하고 같은 탭에서 JRE를 제거한다. android.jar는 C : \ android-sdk-windows \ platforms \ android-3 \ android와 같은 경로에서 찾을 수있다.jar – alex2k8

답변

1

두 프로젝트를 하나로 결합하십시오.

또는 ProjB에 ProjA에 포함 된 JAR 파일을 빌드하십시오.

또는 ProjB를 AIDL을 통해 공개 된 문제가있는 원격 서비스로 전환하고 ProjA를 해당 서비스에 바인딩하여 해당 방법을 사용하도록합니다.

+0

위에서 언급 한 바와 같이 이러한 제안은 작동하지 않습니다. 위의 NoClassDefFound 오류가 계속 발생합니다. 하지만 컴파일시에는 모든 것이 정상적으로 보입니다 ... 나는 청소를하고 다시 시작했습니다 ... 아무것도 작동하지 않습니다. – Ted

1

CommonsWare의 답변을 원하지 않는 경우 디자인을보고 싶을 수 있습니다.

예를 들어 인 텐트를 사용하여 첫 번째 프로젝트에서 두 번째 프로젝트를 호출 할 수 있습니다.

두 프로젝트에 공통적 인 코드가있는 경우 두 프로젝트에 파일을 직접 포함 할 수있는 새 프로젝트로 가져올 수 있지만 두 파일이 함께 작동해야하는 경우 다른 방법이 있습니다 안드로이드에서 액티비티가 서로 전화를 걸거나 정보를 전달할 수있게 해준다.

34

외부 항아리 (내 경우에는 openCSV)를 사용할 때 비슷한 문제가 있습니다. 문제가 발생한 이유는 ADT 17 (또는 그 이상)이 변경 되었기 때문입니다. > 자바 빌드 경로 - -> 주문 및 수출 내가 문제를 해결하기 위해 할 필요가 무엇 이클립스에서

  1. 등록 정보로 이동했다.
  2. 내 항아리 표시.
  3. jar을 목록의 맨 위로 이동하십시오.

용액은 매우 양호한 물품에 관한 in the following page으로 나타났다.

+0

이것은 나를 위해 일했습니다 덕분에 – celoftis

+1

건배, 처음에는 내 외부 프로젝트와 관련이 없다고 생각했습니다. 클래스 Y가 클래스 X에서 발견되었지만 클래스 Y가 메소드 Y에서 찾을 수 없다는 오류가 발생했습니다! 어떻게 X.Y() 메소드가 그것이 나오는 클래스에 대해 알 수 없는지 생각하고 있었습니까? 그런 다음 X.Y() 메서드가 외부 프로젝트에서 온 라인 아래의 일부 데이터 구조와 실제로 상호 작용을한다는 것을 깨달았습니다. 그래서 주문과 내보내기로 이동하여 Android 개인 라이브러리를 맨 위로 옮겼습니다. 어떤 구경꾼이든간에 다른 프로젝트가 참여하고 있다고 생각하지 않는다면 말입니다. 정말입니까? – mgibson

+1

+1 코딩 안드로이드 응용 프로그램은 SO 없이는 불가능합니다. – Sydwell

0

라이브러리 항아리에서 "1.7을 안드로이드 만 지원 1.6이 아닌"이 돌보는 것이 좋습니다 구축 시스템을 수정 한 후 gradle clean을 실행하고 다시 빌드하고 설치하여 해결했습니다. 빌드 시스템은 복잡한 짐승이며 Google은 아직 의존성 문제를 완벽하게 해결하지 못했습니다.

관련 문제