#java #android
#java #Android
Вопрос:
у меня есть эта ошибка во время выполнения в моем logcat:
05-11 06:24:23.672: ERROR/AndroidRuntime(327): java.lang.RuntimeException:
Unable to create application net.osmand.activities.OsmandApplication:
java.lang.IllegalArgumentException: InputStream cannot be null
…
после отладки я обнаружил исключение, каким образом??? в этом методе :
private BaseOsmandRender loadRenderer(String name, Set<String> loadedRenderers) throws IOException, SAXException {
InputStream is = null;
if(externalRenderers.containsKey(name)){
is = new FileInputStream(externalRenderers.get(name));
} else if(internalRenderers.containsKey(name)){
is = OsmandRenderingRulesParser.class.getResourceAsStream(internalRenderers.get(name));
} else {
throw new IllegalArgumentException("Not found " name); //$NON-NLS-1$
}
BaseOsmandRender b = new BaseOsmandRender();
b.init(is);
loadedRenderers.add(name);
List<BaseOsmandRender> dependencies = new ArrayList<BaseOsmandRender>();
for (String s : b.getDepends()) {
if (loadedRenderers.contains(s)) {
переменная «is» всегда равна null
любая помощь, пожалуйста
Комментарии:
1. is инициализируется в двух потоках … какой из них следует за новым FileInputStream или потоком OsmandRenderingRulesParser?
Ответ №1:
Если я правильно помню, getResourceAsStream
возвращает null
, если не может найти ресурс. Я подозреваю, что это причина вашей проблемы.
Ответ №2:
Существуют некоторые сумасшедшие ограничения для файлов в ресурсах приложения. Если вы пытаетесь загрузить ресурсы, попробуйте создать для них расширение *.mp3. Это волшебство.