Faits: A. Par jugement du 20 décembre 2007, le Tribunal de police de l'arrondissement de l'Est vaudois a condamné X._ à cent heures de travail d'intérêt général, sous déduction de la détention préventive, pour rupture de ban à la suite de son interpellation à Lausanne le 2 décembre 2005, alors qu'il faisait l'objet de deux prononcés d'expulsion pénale courant du 20 avril 2004 au 23 septembre 2006, respectivement du 13 octobre 2005 au 28 juillet 2010. La Cour de cassation pénale vaudoise a rejeté le recours formé par X._ par arrêt du 29 février 2008. Statuant sur le recours de X._ le 12 septembre 2008, le Tribunal fédéral a annulé l'arrêt cantonal et renvoyé la cause à la cour cantonale pour nouvelle décision sur les frais et dépens de la procédure cantonale. Le 3 novembre 2008, en conformité avec les injonctions contenues dans l'arrêt fédéral, la Cour de cassation pénale du Tribunal cantonal vaudois a libéré X._ de l'accusation de rupture de ban et laissé à l'Etat les frais des première et deuxième instances. B. Le 30 septembre 2008, X._ a adressé au Tribunal d'accusation du Tribunal cantonal vaudois une demande d'indemnité en application des art. 67 et 163a CPP/VD, dans laquelle il réclamait une somme de 3'150 fr. en réparation du préjudice causé par les vingt et un jours de détention préventive subis, une indemnité pour tort moral de 3'000 fr., ainsi qu'une indemnité pour les frais de défense, en relation avec la rédaction de la demande d'indemnité. Le Tribunal d'accusation vaudois a rejeté cette demande d'indemnité au motif que X._ avait contribué par son comportement civilement répréhensible à l'ouverture de l'enquête pénale dont il avait été l'objet et à son placement en détention préventive durant vingt et un jours. C. Contre cet arrêt cantonal, X._ dépose un recours constitutionnel subsidiaire devant le Tribunal fédéral, concluant à l'annulation de l'arrêt attaqué et au renvoi de la cause à l'autorité cantonale pour nouveau jugement. En outre, il sollicite l'assistance judiciaire. Il n'a pas été ordonné d'échange d'écritures.