2012-07-24 3 views
4

Android의 Eclipse + ADT IDE 프레임 워크 doesn't support (re)using assets from a Library Project. 대신, 응용 프로그램에서 사용하는 모든 자산 자원 자산에 저장해야합니다여러 프로젝트 사이에 자산 공유

/를 응용 프로그램 프로젝트 자체의 디렉토리.

내 문제는 자산을 사용하는 동일한 라이브러리 프로젝트를 사용하는 응용 프로그램이 8 개 (8 개!)이고 앞에서 설명한 제한으로 인해 모든 자산 파일을 모두 8 개 (8 개 !) 응용 프로그램.

이것은 유지 관리의 악몽이며 오류가 발생하기 쉽습니다.

여러 애플리 케이션 프로젝트간에 각 애셋의 복사본을 공유하여이 문제를 해결하는 방법에 대해 알고 싶습니다.

참고 : 하드 링크 또는 소프트 링크와 같은 OS 또는 파일 시스템 종속 솔루션을 피하고 싶습니다. 실제로 작업을 수행하는 경우 context.getAssets()과 같은 솔루션을 선호합니다.

+2

'getAssets()'는 컴파일 타임 솔루션이 아닌 런타임 솔루션이므로 실제 프로젝트에 애셋을 넣지 않으므로 상황에 맞지 않습니다. 하드 링크를 설정하면 질문을 작성하는 데 걸리는 시간보다 짧은 시간이 걸렸을 것입니다. 메모를 확장 할 수 있도록 하드 링크를 통해 실제로 문제가 무엇인지 이해하고'getAssets() '가 실제로 당신을 위해 무엇을 기대할 수 있을까요? – CommonsWare

+0

@CommonsWare 네가 맞아. 'getAssets()'는 라이브러리 프로젝트의 모든 자산을 무시하는 결함있는 자산 메커니즘을 사용합니다. 프로젝트가 다양한 Windows, Mac 및 Linux 데스크톱 및 랩톱에서 액세스하는 공유 서버에 있기 때문에 하드 링크를 사용할 수 없습니다. 제안? –

+0

하드 링크를 서버에 놓습니다. 서버가 파일을 제공 할 때 클라이언트는'asset /'디렉토리가 하드 링크된다는 사실을 잊어 버려야합니다. 또는 공유를 가능하게하기 위해 버전 제어 시스템에 묶인 것을 찾아야합니다 (예 : 자식 서브 모듈). – CommonsWare

답변

0

질문을 올린 이후로 상황이 변경되었을 수도 있지만 Android 프로젝트에서 다른 프로젝트의 자산 파일을 재사용 할 수있었습니다. 내 프로젝트의 자산 폴더를 linked folder으로 생성했습니다. 어떻게 작동하는지 보여주기 위해 sample project을 게시했습니다.