L'Italien de 27 ans a été testé positif à l'EPO lors d'un contrôle diligenté le 30 juillet par l'Agence mondiale antidopage à Oberstdorf, où il s'entraînait.
Il a reconnu sa faute et annoncé la fin de sa carrière.
«Ma carrière est terminée, j'ai fait une erreur», a-t-il déclaré à l'agence italienne Ansa. «Je voulais être plus fort pour ces Jeux olympiques. J'avais tort. J'assume la responsabilité de ce qui s'est passé.»
L'arrivée de Schwazer à Londres était initialement prévue mardi alors que le 50 km est programmé samedi. Il avait renoncé à disputer le 20 km "pour ne pas disperser son énergie en doublant", avait expliqué le Directeur technique italien Francesco Uguagliati.
L'athlète du Haut-Adige avait réalisé cette saison la meilleure performance mondiale sur 20 km, en établissant un nouveau record national (1h17'30) le 18 mars à Lugano. Le marcheur compte à son palmarès deux médailles de bronze mondiales (2005 et 2007) et un titre de vice-champion d'Europe (2010).
Schwazer s'entraîne à Oberstdorf, dans les Alpes bavaroises, une partie de l'année, auprès de sa compagne Carolina Kostner, championne du monde de patinage artistique.