2010-06-18 3 views
5

입니다. Eclipse에서 Android 라이브러리 프로젝트 의존성을 사용하여 Android 애플리케이션을 설정하려고합니다. AnTest라는 프로젝트와 AnLib이라는 라이브러리 프로젝트를 설정했습니다. AnTest의 프로젝트 속성에서 AnLib에 대한 참조를 제공했습니다. 이제 AnTest의 라이브러리 코드 (정적 공용 메서드)를 참조하려고합니다. Eclipse에서 "com.anlib.Hello를 유형으로 확인할 수 없음"을 발생시킵니다.Android 라이브러리 : 리소스가 병합되었습니다. 코드가

그리고 참조가 매달려 있지 않습니다. 리소스가 제대로 병합 된 것을 볼 수 있습니다. 그러나 AnTest 내에서 com.anlib 패키지의 유일한 클래스는 "R"입니다.

제발 내가 뭘 잘못하고있어? 아주 기본적인 단계가 빠져 있어야합니다 ...

EDIT : AnLib를 Java 빌드 경로/AnTest 프로젝트 속성의 프로젝트에 추가했습니다. 이제 컴파일되지만 NoClassDefFoundError 예외가 발생합니다 ...

+0

'ant'로 시도해 보셨습니까? 그렇다면 컴파일되고 Eclipse 프로젝트 설정 문제 일 수 있습니다.이 경우 설정에 대한 자세한 정보를 게시 할 수 있다면 도움이됩니다. –

+0

내가 아는 한, 안드로이드 프로젝트를위한 개미를 적절히 설정하는 데는 어느 정도 시간이 걸린다. 그것은 단순한 자바가 아닙니다. 자원, 서명 등은 무엇입니까. 현재로서는 Eclipse의 자체 빌드 시스템을 고수하고 싶습니다. –

답변

5

샘플 프로젝트 (TicTacToe)를주의 깊게보고 나면 클래스 패스에서 약간의 것을 발견했습니다. 라이브러리 소스에 연결된 폴더입니다. 응용 프로그램의 프로젝트 속성, 자바 빌드 경로, "소스"에서 "소스 링크"를 클릭하고 라이브러리 \ src에 대한 경로를 제공합니다.

결국 마법은 없습니다.

EDIT : NDK (JNI 기반, 기본) 라이브러리는 기본적으로 선택되지 않습니다. 라이브러리 프로젝트의 각 라이브러리에 "libs"라는 링크 된 폴더를 만들어야합니다.

EDIT2 : 기본 라이브러리의 동작은 ADT 및/또는 Eclipse의 버전에 따라 좌우되는 것으로 보입니다. 자산도 병합되지 않지만이 후자의 비트는 실제로 문서화됩니다.

EDIT3 : 최신 Android 도구에서 라이브러리는 더 이상 링크 된 소스로 구현되지 않습니다. 이 대답을 무시하십시오. 그 당시에는 사실이었고 관련성이있었습니다. 그러나 지금은 그렇지 않습니다.

+0

대단히 고맙습니다.이 정보는 어디서나 발견 할 수 없습니다! ... – tbruyelle

0

"라이브러리"프로젝트의 리소스가 없지만이 설정이 있습니다. 내 주요 프로젝트는 Android 프로젝트이지만 "라이브러리"는 표준 Java 프로젝트입니다. 이것은 잘 작동하는 것 같습니다.

기본 Android 프로젝트의 빌드 경로 ('프로젝트'탭)에서 라이브러리 프로젝트를 추가했습니다.

라이브러리 프로젝트의 .project 파일은 다음과 같습니다 :

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>DataExchange</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
     <buildCommand> 
      <name>org.eclipse.wst.common.project.facet.core.builder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.wst.validation.validationbuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <nature>org.eclipse.jem.workbench.JavaEMFNature</nature> 
     <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
     <nature>org.eclipse.wst.common.project.facet.core.nature</nature> 
    </natures> 
</projectDescription> 

안드로이드 프로젝트의 .project 파일은 다음과 같습니다 : 내가 설정에서 그 이상 특별한 아무것도 기억하지 않는다

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>Project</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
     <buildCommand> 
      <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <buildCommand> 
      <name>com.android.ide.eclipse.adt.ApkBuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <nature>com.android.ide.eclipse.adt.AndroidNature</nature> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
    </natures> 
</projectDescription> 

이거.

+1

죄송합니다, 이것은 내 상황과 관련이 없습니다. 병합 할 리소스와 코드가 모두 필요합니다. –

+0

이것이 작동해야한다고 지정된 곳이 있습니까? 이클립스에서는 안드로이드 프로젝트에 대한 참조 만 볼 수 있습니다. 안드로이드 프로젝트는 라이브러리가 아닌 본격적인 프로젝트로 간주됩니다. 이 페이지 또는 프로젝트에 대한 링크가 있으면이 문제를 해결하는 데 도움이 될 수 있습니다. – mbafford

+0

여기 : http://developer.android.com/intl/de/guide/developing/eclipse-adt.html # libraryProject 내 ADT는 충분히 새로워졌습니다. "라이브러리가 있습니까?"확인란을 설정하고 종속성을 설정할 수 있습니다. 이클립스 가니메데 (Eclipse Ganymede). –

관련 문제