Buggy code:
} else if ( localName . equals ( "description" ) ) { mKmlCurrentFeature . mDescription = mStringBuilder . toString ( ) ; } else if ( localName . equals ( "visibility" ) ) { mKmlCurrentFeature . mVisibility = "1" . equals ( mStringBuilder . toString ( ) ) ; } else if ( localName . equals ( "open" ) ) { mKmlCurrentFeature . mOpen = "1" . equals ( mStringBuilder . toString ( ) ) ; } else if ( localName . equals ( "coordinates" ) ) { if ( ( mKmlCurrentFeature ) instanceof KmlPlacemark ) { if ( ! ( mIsInnerBoundary ) ) { mKmlCurrentGeometry . mCoordinates = KmlDocument . parseKmlCoordinates ( mStringBuilder . toString ( ) ) ; } else { KmlPolygon polygon = ( ( KmlPolygon ) ( mKmlCurrentGeometry ) ) ; if ( ( polygon . mHoles ) == null ) polygon . mHoles = new ArrayList < ArrayList < GeoPoint > > ( ) ; ArrayList < GeoPoint > hole = KmlDocument . parseKmlCoordinates ( mStringBuilder . toString ( ) ) ; polygon . mHoles . add ( hole ) ; } } } else if ( localName . equals ( "styleUrl" ) ) { String styleUrl ; if ( ( mStringBuilder . charAt ( 0 ) ) == '#' ) styleUrl = mStringBuilder . substring ( 1 ) ; else styleUrl = mStringBuilder . toString ( ) ; if ( ( mCurrentStyleMap ) != null ) { mCurrentStyleMap . setPair ( mCurrentStyleKey , styleUrl ) ; } else if ( ( mKmlCurrentFeature ) != null ) { mKmlCurrentFeature . mStyle = styleUrl ; } } else if ( localName . equals ( "key" ) ) { mCurrentStyleKey = mStringBuilder . toString ( ) ; } else if ( localName . equals ( "color" ) ) { if ( ( mCurrentStyle ) != null ) { if ( ( mColorStyle ) != null ) mColorStyle . mColor = ColorStyle . parseKMLColor ( mStringBuilder . toString ( ) ) ; } else if ( ( mKmlCurrentGroundOverlay ) != null ) { mKmlCurrentGroundOverlay . mColor = ColorStyle . parseKMLColor ( mStringBuilder . toString ( ) ) ; } } else if ( localName . equals ( "colorMode" ) ) { if ( ( ( mCurrentStyle ) != null ) && ( ( mColorStyle ) != null ) ) mColorStyle . mColorMode = ( mStringBuilder . toString ( ) . equals ( "random" ) ) ? ColorStyle . MODE_RANDOM : ColorStyle . MODE_NORMAL ; } else if ( localName . equals ( "width" ) ) { if ( ( ( mCurrentStyle ) != null ) && ( ( mCurrentStyle . mLineStyle ) != null ) ) mCurrentStyle . mLineStyle . mWidth = Float . parseFloat ( mStringBuilder . toString ( ) ) ; } else if ( localName . equals ( "scale" ) ) { if ( ( ( mCurrentStyle ) != null ) && ( ( mCurrentStyle . mIconStyle ) != null ) ) { mCurrentStyle . mIconStyle . mScale = Float . parseFloat ( mStringBuilder . toString ( ) ) ; } } else if ( localName . equals ( "heading" ) ) { if ( ( ( mCurrentStyle ) != null ) && ( ( mCurrentStyle . mIconStyle ) != null ) ) { mCurrentStyle . mIconStyle . mHeading = Float . parseFloat ( mStringBuilder . toString ( ) ) ; } } else if ( localName . equals ( "href" ) ) { if ( ( ( mCurrentStyle ) != null ) && ( ( mCurrentStyle . mIconStyle ) != null ) ) { String href = mStringBuilder . toString ( ) ; mCurrentStyle . setIcon ( href , mFile , mKMZFile ) ; } else if ( mIsNetworkLink ) { String href = mStringBuilder . toString ( ) ; loadNetworkLink ( href , mKMZFile ) ; } else if ( ( mKmlCurrentGroundOverlay ) != null ) { mKmlCurrentGroundOverlay . setIcon ( mStringBuilder . toString ( ) , mFile , mKMZFile ) ; } } else if ( localName . equals ( "Style" ) ) { if ( ( mCurrentStyleId ) != null ) putStyle ( mCurrentStyleId , mCurrentStyle ) ; else { mCurrentStyleId = addStyle ( mCurrentStyle ) ; } <START_BUG> if ( ( ( mKmlCurrentFeature ) != null ) && ( ( mKmlCurrentFeature ) != null ) ) { <END_BUG> mKmlCurrentFeature . mStyle = mCurrentStyleId ; } mCurrentStyle = null ; mCurrentStyleId = null ; } else if ( localName . equals ( "StyleMap" ) ) { if ( ( mCurrentStyleId ) != null ) putStyle ( mCurrentStyleId , mCurrentStyleMap ) ; mCurrentStyleMap = null ; mCurrentStyleId = null ; mCurrentStyleKey = null ; } else if ( localName . equals ( "north" ) ) { mNorth = Double . parseDouble ( mStringBuilder . toString ( ) ) ; } else if ( localName . equals ( "south" ) ) { mSouth = Double . parseDouble ( mStringBuilder . toString ( ) ) ; } else if ( localName . equals ( "east" ) ) { mEast = Double . parseDouble ( mStringBuilder . toString ( ) ) ; } else if ( localName . equals ( "west" ) ) { mWest = Double . parseDouble ( mStringBuilder . toString ( ) ) ; } else if ( localName . equals ( "rotation" ) ) { mKmlCurrentGroundOverlay . mRotation = Float . parseFloat ( mStringBuilder . toString ( ) ) ; } else if ( localName . equals ( "LatLonBox" ) ) { if ( ( mKmlCurrentGroundOverlay ) != null ) { mKmlCurrentGroundOverlay . setLatLonBox ( mNorth , mSouth , mEast , mWest ) ; } } else if ( localName . equals ( "SimpleData" ) ) { mKmlCurrentFeature . setExtendedData ( mDataName , mStringBuilder . toString ( ) ) ; mDataName = null ; } else if ( localName . equals ( "value" ) ) { mKmlCurrentFeature . setExtendedData ( mDataName , mStringBuilder . toString ( ) ) ;

Fix:
if ( ( ( mKmlCurrentFeature ) != null ) && ( ( mKmlCurrentFeature ) != ( mKmlRoot ) ) ) {