2012-01-13 1 views
6

나는 상태 코멘트 this answer 가로 질러 온 라이브러리 프로젝트가 :.aidl을 라이브러리 프로젝트에 배치 할 수없는 이유는 무엇입니까?

  1. 다른 라이브러리 프로젝트에 의존 할 수 ,
  2. 자산을

음을 수 없습니다, 파일을 .aidl을 수 없습니다 그 의견은 1 년 반 전에 작성되었으며, 완벽하게 작동하는 프로젝트가 있기 때문에 항목 # 2가 더 이상 사실이 아님을 최대한 확신시켜 드릴 수 있습니다 (September 2010?). 다른 도서관 프로젝트에 달려있다.

그래서, 내 질문은 두 가지가 있습니다 : 라이브러리 프로젝트가 .aidl 파일을 저장할 수없는 여전히 사실

  1. 인가?
  2. # 1에 대한 대답이 예인 경우, 그 이유는 무엇입니까?

BTW, 실험으로, 나는 (아직 사용 아무것도하지 않고) 라이브러리 프로젝트 (인앱 결제 샘플에서) IMarketBillingService.aidl을 배치했는데,이 프로젝트는 구축 및 이전 실행됩니다. 따라서 라이브러리 프로젝트가 .aidl을 포함 할 수 없다면이 파일은 더 깊은 파일이어야합니다 ...

답변

6

대답은 '아니오'입니다. 라이브러리 프로젝트에서 AIDL 파일을 사용할 수 있습니다. 세 가지 프로젝트에서 이러한 설정을 사용합니다. 정확하게 기억하지는 마십시오. 그러나 얼마 전에이 문제가 수정되었습니다 (아마 ADT에 라이브러리 라이브러리 지원을 추가했을 때). 이전에 작동하지 않은 이유는 ADT 빌더가 AIDL 파일을 인식하지 못하고 필요한 Java 스텁을 생성하지 않기 때문입니다.

+0

감사! 최근에 다른 제한 사항이 제거되었습니다. [자체 JAR 파일로 라이브러리 프로젝트 생성] (http://developer.android.com/guide/developing/projects/index.html#LibraryProjects). 같은 페이지에있는 문서는 모순이 있지만이 새로운 기능을 테스트 한 결과 응용 프로그램 프로젝트에 의존하지 않고 라이브러리 프로젝트 **에서 독립적으로 **을 생성 할 수 있습니다. –

+2

예, JAR을 생성 할 수 있습니다. 그러나 jar에는 리소스가 포함되어 있지 않으므로 라이브러리 프로젝트에 레이아웃, 문자열 등이있는 경우 응용 프로그램 프로젝트에 jar 파일을 놓을 수 없습니다. 최신 정보는 ADT 사이트를 참조하십시오. 문서는 때로 구식입니다. https://sites.google.com/a/android.com/tools/recent/ –

+0

https://sites.google.com/a/android.com/tools/recent/에 대한 +1 링크가 있습니다. - 나 그 페이지에 대해 몰랐습니다. 이것은 매우 유용합니다. 감사! –

관련 문제