Я думаю, что у меня была похожая проблема, когда я пытался создать своего рода «файл конфигурации», который был помещен в ресурсы приложения и предназначался для изменения поведения используемой библиотеки.Я обнаружил, что работает, используя getIdentifier
метод из Resources
вместо ссылки непосредственно на R
class:
final int resId = getResources().getIdentifier("my_resource", "raw", getPackageName());
Затем вы можете использовать идентификатор как обычный идентификатор ресурса, например:
if (resId > 0) {
final InputStream is = getResources().openRawResource(resId);
// ...
}
Идея состояла в том, чтобы справиться с обеими ситуациями: когда файл присутствовал в ресурсах приложения или когда его не было.Но я думаю, что это также должно работать в вашем случае «переопределения» ресурсов из библиотеки в приложении, благодаря getPackageName
предоставлению соответствующего имени пакета для разрешения идентификаторов ресурсов.