2011-05-11 23 views
0

我有這個運行時錯誤在我的logcat:運行時錯誤的InputStream不能爲空

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 

...

DEBUGIN後,我發現異常COMME如何??? 在此梅索德:

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)) { 

的「是」 varible總是空

任何幫助,請

+0

**是**在兩個流程中初始化......它跟隨新的FileInputStream或OsmandRenderingRulesParser流程? – forsvarir 2011-05-11 08:01:09

回答

0

如果我沒有記錯,getResourceAsStream回報null,如果它不能找到資源。我懷疑這是你的問題的原因。

0

對於應用程序資源中的文件有一些瘋狂的限制。 如果您嘗試加載資源,請嘗試爲它們創建* .mp3擴展名。這是魔法。