Faits :
A.
Par jugement du 24 novembre 2020, le Tribunal de police du canton de Genève a condamné A._ pour séjour illégal à une peine pécuniaire de 60 jours-amende à 30 fr. le jour, peine assortie du sursis et d'un délai d'épreuve de trois ans.
B.
Par arrêt du 4 mars 2021, la Chambre pénale d'appel et de révision de la Cour de justice genevoise a rejeté l'appel formé par A._ et confirmé le jugement attaqué.
En substance, elle a retenu les fais suivants:
B.a. A._ a séjourné, à U._, du 5 janvier 2017, lendemain de sa dernière condamnation, jusqu'au 25 novembre 2019, jour de son appréhension, alors qu'il était démuni de papiers d'identité et qu'il n'était pas au bénéfice des autorisations nécessaires.
B.b. Il est né en 1968 à V._ en W._, pays dont il est originaire. Il est célibataire, sans enfant à charge, actuellement sans emploi, mais se dit reporter. Il n'a pas de famille en Suisse, seulement des connaissances. Il a un frère et deux soeurs qui vivent en W._ et en X._. Il est actif dans les milieux associatifs. C'est par ce biais qu'il subvient à ses besoins, en particulier qu'il obtient de la nourriture. Il indique être toujours engagé auprès des organisations internationales.
B.c. Il est arrivé à U._ le 3 août 2002, au bénéfice d'un visa valable jusqu'au 7 octobre 2002, pour assister à la huitième session de l'Université d'été des droits de l'homme et du droit à l'éducation, qui se déroulait du 3 au 13 août 2002. Il dit n'avoir plus jamais quitté la Suisse depuis lors.
Il a formé une première demande d'autorisation de séjour le 26 février 2004, laquelle a été refusée le 19 mars 2004. L'Office cantonal de la population et des migrations (OCPM) lui a alors imparti un délai au 21 avril 2004 pour quitter le territoire, délai qui a par la suite été renouvelé au 15 avril 2005. A cette période, A._ a affirmé aux autorités administratives avoir quitté U._ pour X._.
Il a été contrôlé à plusieurs reprises à partir de novembre 2014 par la police à U._. Une procédure pénale a été ouverte à son encontre pour séjour illégal et travail sans autorisation, dans le cadre de laquelle il a été acquitté du chef de séjour illégal le 3 mars 2016 par le Tribunal de police du canton de Genève (en application de la jurisprudence relative à la " Directive sur le retour "; cf. consid. 1.1 ci-dessous), mais reconnu coupable de travail sans autorisation. Sur appel de A._, la Chambre pénale d'appel et de révision de la Cour de justice genevoise a, par arrêt du 7 octobre 2016, annulé ce jugement et acquitté l'intéressé du chef de travail illégal.
Le 23 janvier 2015, A._ a déposé une demande d'autorisation de séjour pour cas de rigueur. Le 12 avril 2016, l'OCPM a refusé de faire droit à sa demande et lui a imparti un délai au 12 juin 2016 pour quitter la Suisse. Les recours formés contre ce refus ont été rejetés par les diverses instances cantonales et son recours au Tribunal fédéral a été déclaré irrecevable par arrêt 2C_522/2017 du 9 juin 2017.
L'OCPM a accordé à A._ un nouveau délai au 23 septembre 2017 pour quitter la Suisse. Il ne s'est toutefois jamais présenté pour l'organisation de son départ. Une enquête a été menée pour le localiser et exécuter son renvoi, en vain. A._ ayant adressé une demande d'attestation à l'OCPM le 14 octobre 2019, une nouvelle enquête a été effectuée, sans succès.
A._ a été contrôlé à nouveau le 25 novembre 2019, à l'OCPM, faisant l'objet de deux mandats d'arrêt bernois résultant de la conversion d'amendes. Il a refusé de s'exprimer à la police, mais s'est déterminé sur les mesures d'éloignement par l'OCPM, réaffirmant son refus de quitter la Suisse. Il a formé opposition à l'ordonnance pénale notifiée le lendemain, objet de la présente procédure.
C.
Contre ce dernier arrêt cantonal, A._ dépose un recours en matière pénale devant le Tribunal fédéral. Il conclut, principalement, à la réforme du jugement attaqué en ce sens qu'il est acquitté de la prévention de séjour illégal. A titre subsidiaire, il requiert l'annulation de l'arrêt attaqué et le renvoi de la cause à la cour cantonale pour nouvelle décision. En outre, il sollicite l'assistance judiciaire.

Considérant en droit :
1.
Le recourant conteste sa condamnation pour séjour illégal. Il décrit vivre en Suisse depuis 19 ans sans avoir entravé l'ordre public. Il expose être " militant international pour la protection et la promotion du droit international des droits de l'homme à l'ONU de Genève et dans le milieu associatif suisse ". Il se plaint de faire l'objet d'une persécution policière depuis 2014. Il explique enfin avoir " un projet de mariage avec la personne qui lui convient ".
1.1. À teneur de l'art. 115 al. 1 let. b LEI, est puni d'une peine privative de liberté d'un an au plus ou d'une peine pécuniaire quiconque séjourne illégalement en Suisse, notamment après l'expiration de la durée du séjour non soumis à autorisation ou du séjour autorisé.
Selon la jurisprudence du Tribunal fédéral, l'art. 115 al. 1 let. b LEI doit être interprété conformément à la jurisprudence de l'Union européenne en rapport avec la Directive du Parlement européen et du Conseil du 16 décembre 2008 relative aux normes et procédures communes applicables dans les États membres au retour des ressortissants de pays tiers en séjour irrégulier (Directive sur le retour 2008/115/CE; <ref-ruling> consid. 1.2 p. 236; <ref-ruling> consid. 1.8.1 p. 260). Ainsi, une peine privative de liberté pour séjour illégal ne peut être infligée que si les autorités administratives ont entrepris toutes les mesures raisonnables pour l'exécution de la décision de retour, mais que la procédure y relative a échoué en raison du comportement de l'intéressé (ATF <ref-ruling> consid. 1.6.2 p. 257). Le prononcé d'une peine pécuniaire n'est en revanche pas incompatible avec la Directive sur le retour, pour autant qu'elle n'entrave pas la procédure d'éloignement. Une telle sanction peut être prononcée indépendamment de la mise en oeuvre des mesures nécessaires au renvoi (ATF <ref-ruling> consid. 1.9 p. 260 s.).
1.2. Dans le cas d'espèce, le recourant a séjourné en Suisse du 5 janvier 2017 au 25 novembre 2019, alors qu'il était démuni de papiers d'identité et qu'il n'était pas au bénéficie des autorisations nécessaires. Le recourant ne conteste pas avoir séjourné en Suisse sans papiers durant cette période, mais soutient que " sa longue vie en Suisse est manifeste " et qu'il ne " mérite aucune condamnation pénale dans son pays d'adoption, dans lequel il continue à vivre dignement et à s'engager auprès de ses instances entrepreneuriale, étatique et internationale " (recours p. 5 in fine). Par son comportement, le recourant a violé l'art. 115 al. 1 let. b LEI. Dans la mesure où seule une peine pécuniaire a été infligée, sa condamnation ne contrevient pas à la Directive sur le retour.
2.
Le recourant se prévaut d'une erreur sur l'illicéité compte tenu de l'acquittement prononcé le 3 mars 2016.
2.1. Aux termes de l'art. 21 CP, quiconque ne sait ni ne peut savoir au moment d'agir que son comportement est illicite n'agit pas de manière coupable. Le juge atténue la peine si l'erreur était évitable.
Pour qu'il y ait erreur sur l'illicéité, il faut que l'auteur ne sache ni ne puisse savoir que son comportement est illicite. L'auteur doit agir alors qu'il se croyait en droit de le faire. Il pense, à tort, que l'acte concret qu'il commet est conforme au droit (<ref-ruling> consid. 2.4.3 p. 343 et les référencés; <ref-ruling> consid. 8.2 p. 27). Déterminer ce que l'auteur d'une infraction a su, cru ou voulu et, en particulier, l'existence d'une erreur relève de l'établissement des faits (<ref-ruling> consid. 2.4.3 p. 343; <ref-ruling> consid. 2.3.2 p. 156).
Les conséquences pénales d'une erreur sur l'illicéité dépendent de son caractère évitable ou inévitable. L'auteur qui commet une erreur inévitable est non coupable et doit être acquitté (art. 21, 1re phrase, CP). Tel est le cas s'il a des raisons suffisantes de se croire en droit d'agir (<ref-ruling> consid. 2 p. 210). Une raison de se croire en droit d'agir est " suffisante " lorsqu'aucun reproche ne peut lui être adressé parce que son erreur provient de circonstances qui auraient pu induire en erreur tout homme consciencieux (<ref-ruling> consid. 4a p. 303; cf. FF 1999 p. 1814). Peut être pris en considération le fait que l'auteur a été précédemment acquitté pour des actes semblables et cela quand bien même un représentant du ministère public lui aurait fait savoir avant la seconde infraction que lui-même et l'autorité administrative désapprouvaient cet acquittement (<ref-ruling> consid. 3a p. 186; <ref-ruling> consid. 7 p. 165). En revanche, celui dont l'erreur sur l'illicéité est évitable commet une faute, mais sa culpabilité est diminuée. Il restera punissable, mais verra sa peine obligatoirement atténuée (art. 21, 2e phrase, CP; FF 1999 p. 1814). L'erreur sera notamment considérée comme évitable lorsque l'auteur avait ou aurait dû avoir des doutes quant à l'illicéité de son comportement (<ref-ruling> consid. 5 p. 126) ou s'il a négligé de s'informer suffisamment alors qu'il savait qu'une réglementation juridique existait (<ref-ruling> consid. 5b p. 215). Savoir si une erreur était évitable ou non est une question de droit (arrêt 6B_139/2010 du 24 septembre 2010 consid. 4.1, publié in JT 2010 I 576; cf. ATF <ref-ruling> consid. 7 p. 165; 75 IV 150 consid. 3).
2.2. Il est vrai que le recourant a été acquitté par le Tribunal de police genevois le 3 mars 2016, en application de la jurisprudence relative à la Directive sur le retour (cf. arrêt 6B_1172/2014 du 23 novembre 2015), jurisprudence qui a été modifiée par la suite (cf. ATF <ref-ruling> consid. 1.9 p. 260 s.). A la suite du jugement du 3 mars 2016, les autorités administratives et la police ont toutefois à réitérées reprises informé le recourant du fait qu'il n'était pas autorisé à séjourner légalement en Suisse et l'ont invité à quitter le pays. Vu ces différentes interpellations, la cour cantonale a retenu, en fait, que le recourant savait qu'il ne pouvait pas demeurer en Suisse. Le recourant ne soutient pas que cette constatation de fait, qui lie la cour de céans, serait arbitraire. Au contraire, il admet dans son mémoire de recours (p. 6 avant dernier §) qu'il savait qu'il n'était pas au bénéfice d'un titre de séjour valable et que son séjour en Suisse était contraire au droit, mais qu'il pensait qu'il ne pouvait pas être condamné au pénal tant et aussi longtemps que les mesures de contrainte prévues par la LEI n'avaient été mises en oeuvre. Dans la mesure où le recourant était conscient du caractère illicite de son comportement, c'est à juste titre que la cour cantonale a nié l'existence de toute erreur sur l'illicéité et l'a condamné pour séjour illicite en application de l'art. 115 al. 1 let. b LEI.
3.
En conséquence, le recours doit être rejeté.
Comme ses conclusions étaient vouées à l'échec, l'assistance judiciaire ne peut être accordée (art. 64 al. 1 LTF). Le recourant devra donc supporter les frais judiciaires (art. 66 al. 1 LTF), dont le montant sera toutefois fixé en tenant compte de sa situation financière.

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 à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour de justice de la République et canton de Genève, Chambre pénale d'appel et de révision.
Lausanne, le 18 novembre 2021
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
La Greffière : Kistler Vianin