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.

Considérant en droit:
1. Le Tribunal fédéral examine d'office et librement sa compétence, respectivement la recevabilité des recours qui lui sont soumis (<ref-ruling> consid. 1 p. 381; <ref-ruling> consid. 1 p. 140).
1.1 L'arrêt attaqué porte sur une indemnité en réparation du préjudice causé par la détention préventive et du tort moral à la suite de l'acquittement du recourant. Même si ces prétentions se trouvent en relation avec la procédure pénale, elles se fondent sur un comportement - légal ou illégal - des autorités de poursuite pénale qui auraient causé un dommage ou un tort moral au recourant. Matériellement, il s'agit de prétentions en responsabilité contre le canton de Vaud, reposant sur le droit public cantonal. Le recours en matière de droit public est donc en principe ouvert. La cour de droit pénal est compétente pour traiter un tel recours (art. 30 al. 1 let. c ch. 1 et art. 33 du règlement du Tribunal fédéral [RS 173.110.131]; <ref-ruling> consid. 1.1.2 p. 46).
S'agissant de la responsabilité de l'Etat, le recours en matière de droit public n'est toutefois recevable que si la valeur litigieuse est supérieure à 30'000 fr. (<ref-law>). En l'espèce, la valeur litigieuse est de 6'150 fr., de sorte que le recours en matière de droit public est irrecevable. Seul le recours constitutionnel subsidiaire entre en ligne de compte (<ref-ruling> consid. 1.1.3 p. 46 s.), voie que le recourant a utilisée à juste titre.
1.2 Le recours constitutionnel subsidiaire ne peut être formé que pour la violation des droits constitutionnels (<ref-law>). A la qualité pour recourir celui qui a pris part à la procédure devant l'autorité précédente ou a été privé de la possibilité de le faire et qui a un intérêt juridique à l'annulation ou à la modification de la décision attaquée (art. 115 let. a et b LTF). Lorsque - comme en l'espèce - le recourant se plaint d'arbitraire dans l'application des dispositions cantonales, celles-ci doivent lui accorder un droit ou servir à protéger ses intérêts prétendument lésés (<ref-ruling> consid. 4 p. 191). Tel est le cas des art. 67 et 163a CPP/VD, dans la mesure où ces dispositions accordent, à certaines conditions, un droit à une indemnité au prévenu qui a été acquitté.
1.3 Aux termes de l'<ref-law>, le Tribunal fédéral n'examine la violation de droits fondamentaux que si ce grief a été invoqué et motivé par le recourant. Cette disposition reprend le principe du grief (Rügeprinzip) que la pratique relative au recours de droit public avait établi en relation avec l'art. 90 OJ (<ref-ruling> consid. 1.4.2 p. 254; <ref-ruling> consid. 6 p. 397). Selon cette pratique, l'acte de recours doit, à peine d'irrecevabilité, contenir un exposé succinct des droits constitutionnels ou des principes juridiques violés et préciser en quoi consiste la violation. Le Tribunal fédéral n'a donc pas à vérifier de lui-même si l'arrêt entrepris est en tous points conforme au droit et à l'équité, mais n'examine que les griefs d'ordre constitutionnel invoqués et suffisamment motivés dans l'acte de recours (<ref-law> en corrélation avec l'<ref-law>; cf. <ref-ruling> consid. 1.3 p. 261/262 et les références).
2. Le recourant dénonce une application arbitraire des art. 67 et 163a CPP/VD. En outre, il reproche au Tribunal d'accusation d'avoir statué différemment que la Cour de cassation pénale du Tribunal cantonal vaudois dans son arrêt du 3 novembre 2008, laquelle l'a acquitté et a laissé les frais à la charge de l'Etat. En effet, une condamnation au paiement des frais n'est admissible que si l'accusé a eu un comportement civilement répréhensible. Or, comme le recourant a été libéré des frais par la Cour de cassation pénale vaudoise, il en déduit que celle-ci a estimé que son comportement n'était civilement pas répréhensible.
2.1 De jurisprudence constante, ni le droit constitutionnel fédéral, ni le droit conventionnel n'exigent de l'État qu'il indemnise les particuliers victimes d'une incarcération en soi licite, mais qui se révèle par la suite injustifiée (cf. <ref-ruling> consid. 6 p. 230; <ref-ruling> consid. 2d p. 182; <ref-ruling> consid. 3 p. 17). Il en va a fortiori de même s'agissant des autres préjudices subis en relation avec la procédure pénale close par un non-lieu ou un acquittement. Il est en revanche loisible aux cantons d'instituer une telle garantie, dont le Tribunal fédéral examine alors la portée sous l'angle de l'arbitraire lorsqu'elle est contenue dans une norme de rang inférieur à la Constitution (cf. arrêt 1P.457/1996 du 26 novembre 1996, publié in Zbl 99/1998 p. 34 et RDAF 1999 I 679, consid. 2).
En droit vaudois, l'<ref-law>/VD prévoit que celui qui a été détenu et qui a bénéficié par la suite d'un non-lieu ou d'un acquittement peut obtenir de l'Etat une indemnité à raison du préjudice que lui a causé son incarcération. Selon l'<ref-law>/VD, l'inculpé et l'accusé libérés des fins de la poursuite pénale, qui ne l'ont ni provoquée ni compliquée fautivement, peuvent obtenir de l'Etat, du plaignant ou de la partie civile une indemnité équitable pour le préjudice résultant de l'instruction et pour leurs frais de défense.
L'indemnité prévue par les art. 67 et 163a CPP/VD pourra être réduite ou refusée lorsque, par un comportement juridiquement critiquable, le demandeur a provoqué ou compliqué fautivement la poursuite pénale et que ce comportement se trouve en rapport de causalité avec le préjudice dont la réparation est demandée (cf. <ref-law>/VD; BOVAY AT AL., Procédure pénale vaudoise, 3e éd., 2008, n. 4.3 ad art. 67; n. 1.2 ad art. 163a). De façon générale, par comportement juridiquement critiquable, il faut entendre la violation de n'importe quelle norme de comportement, écrite ou non, résultant de l'ordre juridique suisse dans son ensemble (<ref-ruling> consid. 1b p. 334; <ref-ruling> consid. 2c p. 168). Un comportement contraire à la seule éthique ne peut justifier le refus d'indemniser le prévenu libéré des fins de la poursuite pénale (ATF <ref-ruling> consid. 2b p. 168).
2.2 En l'espèce, le recourant a été interpellé le 2 décembre 2005 à Lausanne. Il était alors sous le coup de deux expulsions judiciaires en force, de sorte que son séjour en Suisse constituait une infraction selon l'<ref-law> (rupture de ban). S'il a été acquitté, c'est en application de la lex mitior. En effet, le chiffre 1 al. 2 des dispositions finales de la modification du code pénal du 13 décembre 2002 prévoit que les mesures d'expulsion prononcées sous l'ancien droit sont supprimées par le fait de l'entrée en vigueur du nouveau droit et, partant, l'une des conditions de l'infraction de rupture de ban faisait ainsi défaut. Il n'en reste pas moins que le comportement du recourant était punissable au moment de son interpellation et qu'il justifiait dès lors l'ouverture d'une action pénale. Le Tribunal d'accusation n'a donc pas appliqué arbitrairement le droit de procédure cantonal en refusant au recourant une indemnité au sens de l'art. 67 et 163a CPP/VD au motif que celui-ci avait donné lieu à l'action pénale.
En vertu du principe de la bonne foi, l'autorité doit éviter des comportements contradictoires. L'interdiction de comportements contradictoires ne concerne toutefois que la même autorité, agissant à l'égard des mêmes justiciables, dans la même affaire ou à l'occasion d'affaires identiques (<ref-ruling> consid. 6 p. 87). C'est donc en vain que le recourant reproche à la cour cantonale d'avoir statué de manière différente que la Cour de cassation pénale vaudoise. En effet, les deux cours ont tranché des questions différentes même si les critères applicables étaient les mêmes, et ce selon une procédure différente. La cour de cassation pénale s'est prononcée sur les frais dans le cadre de l'action pénale. Le Tribunal d'accusation a statué sur l'octroi ou le refus d'une indemnité au sens des art. 67 et 163a CPP/VD dans une procédure distincte, échappant au juge du procès pénal.
3. Le recours doit ainsi être rejeté.
Comme ses conclusions étaient d'emblée vouées à l'échec, le recourant doit être débouté de sa demande d'assistance judiciaire (art. 64 al. 1 et 2 LTF) et supporter les frais de justice (art. 65 et 66 al. 1 LTF), réduits à 800 fr. compte tenu de sa situation financière actuelle.

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. La demande d'assistance judiciaire est rejetée.
3. Les frais judiciaires, arrêtés à 800 francs, sont mis à la charge du recourant.
4. Le présent arrêt est communiqué aux parties et au Tribunal d'accusation du Tribunal cantonal du canton de Vaud.
Lausanne, le 7 septembre 2009
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président: La Greffière:
Favre Kistler Vianin