Eclipse에서 다른 Android 프로젝트의 Android 라이브러리 프로젝트를 참조 할 수 없습니다.


104

이 질문을 작성하면서 나는 그것을 해결할 수 있었으므로 다른 사람들의 이익을 위해 여기에서 반복하십시오. 다음은 초기 문제입니다.

다른 프로젝트에서 참조하고 싶은 매우 간단한 라이브러리 프로젝트를 만들었습니다. 나는 이전에 아무런 문제없이 이것을 해왔 기 때문에 이번에는 왜 작동하지 않는지 잘 모르겠습니다. 나는 가지고있다:

  1. 프로젝트 속성을 통해 라이브러리 프로젝트에 플래그를 지정했습니다. default.properties파일이 집합이 있습니다 :android.library=true

  2. 내 다른 프로젝트에서 프로젝트 속성을 통해 내 라이브러리 프로젝트에 대한 참조를 추가했습니다. default.properties파일은 참조가 예상되는 예로 추가했습니다android.library.reference.1=K:/android_test_ws/applicationRegistrar

  3. 참조 된 라이브러리 프로젝트에 대한 녹색 체크 표시가 녹색에서 시작하여 빨간색 십자가로 변경됩니다.

이것은 도서관 프로젝트에서 뭔가 잘못되었거나 빠진 것이 있음을 의미하지만 무엇인지 모르겠습니다. 이 경우 내 도서관 프로젝트는 이전에 만든 것보다 훨씬 간단합니다.


내 경우에 도움이 솔루션은 : stackoverflow.com/questions/9283040/... 누군가 도움이 나는 희망
아 비어 술

답변:


160

확인 내 파일 시스템에서 참조하는 프로젝트 (라이브러리가 아님)의 default.properies 파일을 찾을 때 찾은 솔루션입니다. 참조하는 프로젝트가 라이브러리 프로젝트와 동일한 Eclipse 작업 공간에 있었지만 실제 파일은 파일 시스템의 다른 곳에있었습니다. 즉, 라이브러리 프로젝트의 동일한 상위 폴더에 있지 않았습니다. 참조 프로젝트를 라이브러리 프로젝트와 동일한 물리적 폴더에 배치하자마자 모든 것이 잘되었습니다.

나는 이것이 덮개 아래에 개미를 사용하는 안드로이드와 관련이 있다고 생각합니다.

편집 : 프로젝트 이름은 파일 시스템의 폴더 이름과 일치해야합니다. Project Properties-> Android-> Library Reference에 표시되는 것은 상대 파일 시스템 경로입니다.


3
또한 심볼릭 링크가 이것에 적합하지 않다는 것을 추가하고 싶습니다. 모든 프로젝트를 서로 다른 위치 (백업하려는 항목을 넣은 위치)에있는 동일한 폴더에 저장 한 다음 작업 공간 폴더 내에서이 폴더에 대한 심볼릭 링크를 여러 개 저장했습니다. 그들은 너무 했다 두 곳에서 서로 같은 폴더에있는 모든 그러나 심볼릭 링크의 사용은 모든 위로를 엉망. 실제 폴더를 기본 작업 공간으로로드하면 괜찮 았습니다.
Zulaxia 2011

7
+1 이클립스 / ADT 콤보의이 끔찍한 동작을 설명합니다. 참고로, 두 프로젝트를 동일한 물리적 폴더에 배치 하더라도 해당 폴더가 Samba 공유에있는 경우 에는 도움이되지 않습니다 . Ugrrr ...
an00b

20
때때로 Eclipse는 참조를 제거하고 Eclipse를 다시 시작한 다음 다시 추가합니다. 이제 작동합니다.
Warpzit 2012 년

이것은 동일한 작업 공간에 속한 내 프로젝트의 문제였습니다. 라이브러리와 동일한 작업 공간에서 프로젝트를 가져 왔고 모든 것이 잘 작동했습니다. 답변 해주셔서 감사합니다.
Jayshil Dave

작업 공간과 라이브러리가 동일한 폴더 위치에 있는지 확인하십시오. ADT를 다시 다운로드하는 실수를 저질렀 고 실제 작업 공간이 아닌 C : \ users 작업 공간 아래에 프로젝트를 만들었습니다. 말할 필요도없이 프로젝트와 라이브러리가 동일한 작업 디렉토리에 있는지 다시 확인하십시오!
Garbit 2014 년

11

두 프로젝트가 동일한 작업 공간에 있는지 확인하십시오. 이를 위해 프로젝트를 가져 오는 동안 "프로젝트를 작업 공간으로 복사"확인란이 선택되어 있는지 확인하십시오.


1
동일한 라이브러리 프로젝트를 다른 프로젝트에 어떻게 사용할 수 있습니까? 나는 붉은 색 십자가 상징 .. @Karthik 보여주는 것이 이렇게하면
Shylendra Madda

10

라이브러리 프로젝트가 현재 작업 공간과 다른 파티션에있는 경우에도 동일한 문제가 발생합니다. 나는 지금 같은 문제가 있습니다. 내 자식 소스는 C :에 있고 작업 공간을 D :로 옮기면 모든 것이 붕괴되기 시작합니다.


4
메인 및 라이브러리 프로젝트가 다른 드라이브 에있는 경우 Eclipse는 참조 경로를 절대에서 상대로 확인할 수 없으며 Eclipse는 이에 만족하지 않는 것 같습니다 (녹색 체크 표시가 빨간색 십자가로 바뀜).
Pang

나를 위해 일했습니다. 동일한 드라이브 (H :)에서 참조 된 프로젝트를 교체했습니다. 이제 괜찮습니다
Tobia Zambon 2017 년

4

올바른 라이브러리 경로 경로를 가져 오는 가장 간단한 방법은 Eclipse의 GUI를 사용하여 다음 스크린 샷에 표시된대로 라이브러리를 추가하고 Eclipse가 project.properties에 올바른 상대 경로를 배치하도록하는 것입니다. 라이브러리를 사용하는 주요 프로젝트와는 매우 다른 디렉토리에서 라이브러리 프로젝트를 호스팅하는 일반적인 설정입니다. 이 방법은 "libary 프로젝트"와이를 사용하는 프로젝트가 동일한 Eclipse "workspace"에있는 경우 작동합니다 (동일한 상위 폴더에 "필요하지 않음"). 여기에 이미지 설명 입력


4
문제는 라이브러리와 프로젝트가 다른 드라이브 / 파티션에 있기 때문입니다 ... 위의 버그 목록을 참조하세요. 당신은 괜찮 때문에 대신 DOS 전체 경로의 라이브러리 경로 쇼 상대 경로 ...
kenyee

3

라이브러리 프로젝트가 "Is Library"로 표시되어 있는지 확인하십시오.-라이브러리 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.-속성-Android- "Is Library"확인란을 선택하십시오.-라이브러리 프로젝트의 project.properties에 새 항목이 있어야합니다. "android .library = true. 이제 아래 게시물에 설명 된대로 원하는 프로젝트에 추가합니다 (이미지가 통합 된 게시물-Nilesh Pawar에서 제공).


1
이것은 나를 위해 잘 작동했습니다. 혼란스러운 부분은이 'Is Library'확인란의 위치라고 생각합니다. 이것이 실제로 현재 앱 / 라이브러리 빌드의 대상을 선택하고 포함 할 라이브러리에 대한 옵션 스위치가 아니라는 것은 직관적이지 않습니다.
EtienneSky


2

같은 문제에 대한 또 다른 관찰.

나에게는 동일한 상위 폴더에 있고 둘 다 작업 공간 내부에 로컬 인 두 프로젝트가 있습니다. 그때도 문제는 여전히 발생하고있었습니다.

"project.properties"파일을 편집하고 라이브러리 프로젝트의 절대 경로 (구분자는 슬래시 '/'포함)를 입력했습니다. 저장하고 닫았습니다. 그런 다음 프로젝트 속성 대화 상자로 이동하여 라이브러리를 제거하고 (여전히 십자가 아이콘이 표시되지만 abs 경로가 있음) 평소와 같이 다시 추가했습니다. 놀랍게도 문제가 해결되고 프로젝트가 컴파일되고 실행됩니다.

이것은 정말 이상하고 ADT의 버그 일 것입니다. ADT 버전 20.0.2를 사용하고 있습니다.


+1. 동일한 이름의 라이브러리를 전환하는 동안이 문제가 발생했습니다. eclipse (또는 ADT)가 이전 항목을 참조하려고 시도하고 실패한 것처럼 보입니다. Eclipse 재시작이 도움이됩니다. (Ubuntu 12.04, Eclipse Indigo, ADT 21.0.0)
Luten

2

개발자가 facebook 또는 다른 라이브러리 프로젝트를 참조 할 때 먼저 eclipse-> project-> clean 프로젝트에서 프로젝트를 정리하십시오. 참조 화면에서 적십자 오류를 허용하려는 경우.


2

나를 위해 일식을 다시 시작하면 추가 된 라이브러리가 제대로 작동합니다.

도서관 프로젝트를 추가 한 후 처음으로 빨간색 표시가 나타납니다. Eclipse 메인 프로젝트와 라이브러리 프로젝트는 동일한 작업 공간 폴더에 있고 프로젝트 폴더 외부에는 리소스 파일이 없습니다.

따라서 일식을 다시 시작할 수 있습니다. 행복한 코딩 ....


1

나를위한 해결 방법은

  1. 새 작업 영역 만들기
  2. 해당 작업 공간에서 라이브러리 프로젝트 가져 오기
  3. 가져 오기 해당 작업 공간에서 원하는 프로젝트
  4. 프로젝트와 라이브러리 프로젝트가 모두 동일한 대상 Android OS 버전을 갖는 경우
  5. 내 프로젝트의 참조 라이브러리 프로젝트

내 문제를 해결했다


새 작업 공간을 만들어도 문제가 해결되었습니다. 또한 프로젝트를 지워야합니다.
Omer Cansizoglu

1

내 작업 공간을 변경하려고 할 때 동일한 문제가 있었으므로 내 솔루션이 다음과 같습니다.

  1. 라이브러리 프로젝트를 포함한 모든 프로젝트 데이터를 작업 공간으로 가져 오기 및 복사
  2. 프로젝트-> 속성-> 안드로이드-> 라이브러리를 마우스 오른쪽 버튼으로 클릭하여 이전 프로젝트 참조를 삭제하고 손상된 라이브러리를 선택하고 제거를 선택합니다.
  3. 먼저 프로젝트 정리 (프로젝트 속성 새로 고침)
  4. 라이브러리 프로젝트 속성-> Android-> 라이브러리로 이동하여 적용을 클릭하지 않은 경우 라이브러리를 확인한 다음 확인을 클릭합니다.
  5. 라이브러리 프로젝트가 이미 라이브러리 인 경우 체크 해제 한 다음 라이브러리 프로젝트를 정리 한 다음 4 단계를 다시 수행하십시오.
  6. 라이브러리가있는 프로젝트로 이동 한 다음 프로젝트-> 속성-> Android-> 라이브러리를 마우스 오른쪽 버튼으로 클릭하고 추가 한 다음 라이브러리 프로젝트 (있을 것임)를 선택하고 적용을 클릭 한 다음 확인을 클릭합니다.
  7. 여전히 나타나지 않으면 프로젝트를 한 번 더 청소하면됩니다.


0

참조 경로의 전후를 살펴보면 "C : / workspace / mylib"에서 가져오고 올바른 위치에 복사하면 "../../mylib"로 이동합니다. 매우 흥미 롭습니다.


0

참고로,

나를 위해 일한 것은 내 작업 공간에서 '라이브러리'프로젝트 (실제 프로젝트)를 삭제 한 다음 (파일을 삭제하지 않고) 마법사를 사용하여 다시 가져 오는 것입니다 (소스 코드에서 기존 Android 프로젝트 가져 오기).


또한 나를 위해 일했습니다. 그냥 제거하고 ( '이클립스 프로젝트를 기존의'로) 프로젝트를 다시 가져온
Neromancer

0

질문을 게시 해 주셔서 감사합니다. Facebook을 Android 애플리케이션과 통합하는 동안 똑같은 문제가 발생했습니다. 개발 프로젝트를 라이브러리 프로젝트가있는 동일한 Windows 드라이브로 이동하여 문제를 해결했습니다. 어쨌든 Eclipse는 다른 드라이브에있는 경우 default.properties 파일 에서 라이브러리 프로젝트의 위치를 ​​제대로 읽을 수 없습니다 .


0

Sufi Khan의 게시물과 마찬가지로 재부팅으로이 문제를 해결했습니다. 내 경우는 처음 Properties-> Android에 액세스하고 라이브러리를 추가했을 때 멋진 녹색 확인 표시가 있다는 점에서 달랐습니다. 대화 상자를 닫았을 때 Eclipse가 여전히 클래스를 찾을 수 없음 유형 오류를 표시했습니다. 속성을 다시 확인했을 때 빨간색 X가 표시되었습니다.하지만 Kahn 씨의 솔루션 (불량 lib 삭제, Eclipse 다시 시작, lib 다시 추가)이 제대로 작동했습니다.

0702 버전의 ADT 번들을 사용하고 있습니다 ( "cluster"로 시작하고 "duck"과 운율).


0

나는 받아 들여진 대답을 따랐지만 "project.properties"파일을 읽을 수 있는지 확인해야했다.

파일이 읽기 전용 (소스 제어에 체크인 됨)이면 eclipse는 파일을 편집하지 않습니다. 라이브러리 참조를 추가하면 성공하지만 확인을 누른 후에는 변경 사항이 유지되지 않습니다.

환경 설정 창을 닫고 다시 열면 방금 추가 한 라이브러리가 제거되는 경우 이것이 해결책 일 수 있습니다.


0

라이브러리 프로젝트가 여전히 표시되지 않는 경우 라이브러리 프로젝트 속성에 라이브러리 플래그를 추가해보십시오.

android.library = true 추가

project.properties

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

# Project target.
target=android-17
android.library=true
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.