2016-08-09 237 views
-1

Ich bekomme Fehler wie null pointer exception, aber nach meiner Prüfung, Zyklus ist in Ordnung. i erhalten Fehler auf diesem Codejava.lang.NullPointerException: Versuch, die virtuelle Methode 'int java.lang.Integer.intValue()' auf einem Nullobjekt Referenz

bitmap = BitmapFactory.decodeResource(getResources(), MapId.getId(mapName)); 
mIndiaBitmapLoadedListener.onIndiaBimapLoaded(bitmap); 
map.setImageBitmapReset(bitmap, true); 

Dies ist mein MapId Klasse

public class MapId 
    { 
     public static HashMap<String,Integer> mapids = new HashMap<String, Integer>(); 
     public static void setHashMap() 
     {  
      mapids.put("Political Map",R.drawable.indiapoliticalbig); 
      mapids.put("Physical Map",R.drawable.physicalmap); 
      mapids.put("Railway Map", R.drawable.railwaymap); 
      mapids.put("Road Map", R.drawable.roadmap); 
      mapids.put("Tourist Map", R.drawable.touristmap); 
     } 
     public static int getId(String stateName) 
     { 
      return mapids.get(stateName); 
     } 
    } 

Das ist mein Error log

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference 
    at com.compare.IndiaAtlas.MapId.getId(MapId.java:58) 
    at com.compare.IndiaAtlas.IndiaFragment.onCreateView(IndiaFragment.java:62) 
    at android.app.Fragment.performCreateView(Fragment.java:2053) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:894) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 
    at android.app.BackStackRecord.run(BackStackRecord.java:834) 
    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1454) 
    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:447) 
    at android.os.Handler.handleCallback(Handler.java:739) 
    at android.os.Handler.dispatchMessage(Handler.java:95) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5343) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 

wir in sethashmap()Railway Map, Road Map & Tourist Map diese drei neuen Eintrag hinzufügen bekomme error aber vorheriger Eintrag Physische und politische Karte läuft richtig.

+3

Ich mag die Tatsache, dass Ihre Fehlerzuständen 'Integer.intValue()‘ auf ein Null-Objekt Referenz ", aber der relevante Code existiert nirgends in der Post. Voting zum Schließen als Duplikat, und wenn ich könnte, aus Mangel an Kontext. –

Antwort

1

Ich glaube, Sie Ihre Karte wie folgt initialisieren sollte:

import java.util.Collections; 
import java.util.HashMap; 
import java.util.Map; 

public class MapId { 
    private static Map<String, Integer> mapids; 
    static { 
     mapids = new HashMap<String, Integer>(); 
     mapids.put("Political Map", R.drawable.indiapoliticalbig); 
     mapids.put("Physical Map", R.drawable.physicalmap); 
     mapids.put("Railway Map", R.drawable.railwaymap); 
     mapids.put("Road Map", R.drawable.roadmap); 
     mapids.put("Tourist Map", R.drawable.touristmap); 
     mapids = Collections.unmodifiableMap(mapids); 
    } 
    public static int getId(String stateName) { 
     if (mapids.containsKey(stateName)) { 
      return mapids.get(stateName); 
     } 
     return 0; 
    } 
} 

Und dann benutzen Sie einfach: MapId.getId("Tourist Map");

+0

Typenkonflikt: Konvertierung von Map zu HashMap

+0

nicht möglich Ich habe den Code bearbeitet. – fernandospr

+0

mit diesem Code gehört Klassen erhalten Fehler. –