Доступ к ресурсу библиотеки, на которую ссылается указанный проект

У меня есть тестовый проект X, который тестирует проект Y. В проекте Y есть библиотека Z в качестве эталона. библиотека Z имеет необработанный ресурс R1, который я пытаюсь открыть, но я продолжаю получать ресурс, который не найден. Необработанный ресурс находится в папке res/raw в библиотеке.

Я попробовал openRawResource с соответствующим менеджером пакетов, но это не помогло. Есть идеи? Есть ли логическая ошибка в моем распределении ресурсов?

не сработало:

PackageManager pmMgr = getInstrumentation().getTargetContext().getPackageManager();
Resources rMgr = pmMgr.getResourcesForApplication("PROJECT.Y.PACKAGE");
InputStream is = rMgr.openRawResource(package.library.z.raw.R1);

ни сделал

PackageManager pmMgr = getInstrumentation().getContext().getPackageManager();
Resources rMgr = pmMgr.getResourcesForApplication("PROJECT.Y.PACKAGE");
InputStream is = rMgr.openRawResource(package.library.z.raw.R1);

P.S. Я убедился, что R1 также завернут в .apk упомянутого проекта (Y) в res/raw.


person Guy    schedule 10.10.2012    source источник


Ответы (1)


Отвечаю на свои вопросы. Хотя с момента моего вопроса прошел всего день.. Уже несколько дней бьюсь над этой проблемой.

Решение уж больно глупое. Более новые версии ADT требуют, чтобы вы использовали библиотеку проекта для вызова ресурсов, даже если они из библиотек, на которые ссылаются. Например. к рабочему примеру кода:

PackageManager pmMgr = getInstrumentation().getTargetContext().getPackageManager();
Resources rMgr = pmMgr.getResourcesForApplication("PROJECT.Y.PACKAGE");
InputStream is = rMgr.openRawResource(package.library.Y.raw.R1);

единственное изменение в последней строке, Y вместо Z.

person Guy    schedule 11.10.2012