Faits :
A.
Par ordonnance pénale du 8 septembre 2014, le Ministère public de la République et canton de Genève a condamné X._, pour infraction à l'art. 19 al. 1 de la loi sur les stupéfiants (LStup; RS 812.121), entrée illégale et séjour illégal, à une peine privative de liberté de 6 mois, sous déduction de 93 jours de détention subie avant jugement, et a ordonné la confiscation de la somme de 66 fr. 30 séquestrée.
A la suite de l'opposition formée par X._ contre cette ordonnance pénale, le Tribunal de police de la République et canton de Genève a, par jugement du 26 octobre 2015, acquitté le prénommé du chef d'accusation d'infraction à l'art. 19 al. 1 LStup, l'a condamné, pour entrée illégale et séjour illégal, à une peine pécuniaire de 30 jours-amende à 30 fr. le jour, sous déduction de 93 jours-amende correspondant à 93 jours de détention avant jugement, ainsi qu'à une partie des frais de la procédure. Il a en outre ordonné la restitution à X._ de la somme de 66 fr. 30 séquestrée, a condamné l'Etat de Genève à verser au prénommé une indemnité de 1'358 fr. 30 pour le dommage économique subi ainsi qu'une indemnité de 12'600 fr. avec intérêts à titre de réparation morale pour la détention injustifiée subie.
B.
Par arrêt du 21 octobre 2016, la Chambre pénale d'appel et de révision de la Cour de justice de la République et canton de Genève a admis partiellement l'appel interjeté par le Ministère public contre le jugement du 26 octobre 2015. Elle l'a réformé en ce sens que X._ est condamné, pour infraction à l'art. 19 al. 1 LStup, entrée illégale et séjour illégal, à une peine privative de liberté de 6 mois, sous déduction de 93 jours de détention subie avant jugement, avec sursis pendant 3 ans, que la somme de 66 fr. 30 séquestrée est confisquée, que X._ est débouté de ses conclusions en indemnisation et que les frais de première instance sont mis à sa charge.
La cour cantonale a retenu les faits suivants.
X._ est un ressortissant albanais né en 1983. Selon ses dires, il a effectué sa scolarité obligatoire dans son pays, puis y a entamé une formation de mécanicien, interrompue en raison de la guerre civile en 1997. Il a ensuite vécu en Italie avec sa famille. Il est frappé d'une interdiction d'entrée en Suisse prononcée contre lui le 20 août 1998 et valable pour une durée indéterminée. Le 17 février 2012, il a été condamné par le Ministère public genevois pour une entrée illégale commise la veille. Vers la fin du mois de mai 2014, la police a appris que X._ était de retour à Genève et qu'il logeait dans un appartement sis à A._ (ci-après : l'appartement). Le prénommé était soupçonné de diriger un trafic d'héroïne avec l'aide de ses compatriotes B._ - son frère -, C._ et D._. X._ sortait rarement de l'appartement. Il a cependant été vu plusieurs fois, en compagnie de C._ et D._, dans un cybercafé de E._ fréquenté par des dealers d'héroïne originaires des Balkans. Le 2 juin 2014, B._ a quitté l'immeuble de l'appartement et a été arrêté peu après en possession de 29 sachets "minigrip" contenant de l'héroïne. La police a ensuite perquisitionné l'appartement, dans lequel elle a trouvé X._ et C._. Elle y a également découvert plus de 16 kg de marijuana placés dans un sac au salon, trois "pucks" comprenant 1,66 kg d'héroïne ainsi que 10 paquets d'aluminium remplis de 10 sachets "minigrip" d'héroïne conditionnée pour la vente, cachés dans une plinthe de l'armoire de l'entrée. Enfin, la police a trouvé des sachets "minigrip" remplis d'héroïne dans un placard et sous l'évier de la cuisine, ainsi que du matériel de conditionnement, soit du produit de coupage ou encore une balance électronique. Par ailleurs, X._ avait pénétré puis séjourné sans droit sur le territoire suisse jusqu'au jour de son arrestation, alors qu'il faisait l'objet d'une interdiction d'entrée en Suisse valable pour une durée indéterminée.
Les procédures pénales ouvertes contre B._, C._ et D._ ont été disjointes. Les deux premiers ont été condamnés en procédure simplifiée pour infraction grave à la LStup, tandis que le troisième a été condamné pour infraction simple à la LStup.
C.
X._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 21 octobre 2016 en concluant, avec suite de frais et dépens, principalement à sa réforme en ce sens qu'il est acquitté du chef d'accusation d'infraction à l'art. 19 al. 1 LStup, qu'il est condamné, pour entrée illégale et séjour illégal, à une peine pécuniaire de 30 jours-amende à 30 fr. le jour, sous déduction de 93 jours-amende correspondant à 93 jours de détention avant jugement, que l'Etat de Genève est condamné à lui verser une indemnité de 12'600 fr. avec intérêts à titre de réparation morale pour la détention injustifiée subie ainsi qu'une indemnité de 1'358 fr. 30 pour le dommage économique subi, et que la somme de 66 fr. 30 séquestrée lui est restituée. Subsidiairement, il conclut à son annulation et au renvoi de la cause à l'autorité précédente pour nouvelle décision. X._ sollicite en outre le bénéfice de l'assistance judiciaire.
D.
Invités à se déterminer, le ministère public a conclu au rejet du recours, tandis que la cour cantonale a indiqué persister dans les termes de son arrêt. Les observations du ministère public et la prise de position de la cour cantonale ont été communiquées à X._, qui a déposé des observations à ce propos.

Considérant en droit :
1.
Le recourant soutient que la cour cantonale aurait établi les faits de manière arbitraire et en violation de la présomption d'innocence.
1.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (cf. art. 105 al. 1 LTF), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. La notion d'arbitraire a été rappelée récemment dans l'arrêt publié aux <ref-ruling> consid. 4.3 p. 380, auquel on peut se référer. En matière d'appréciation des preuves et d'établissement des faits, il n'y a arbitraire que lorsque l'autorité ne prend pas en compte, sans aucune raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables (<ref-ruling> consid. 2.3 p. 266 et les références citées). Le Tribunal fédéral n'entre en matière sur les moyens fondés sur la violation de droits fondamentaux que s'ils ont été invoqués et motivés de manière précise (art. 106 al. 2 LTF). Les critiques de nature appellatoire sont irrecevables (<ref-ruling> consid. 2.4 p. 368 et les références citées). Lorsque, comme en l'espèce, l'appréciation des preuves et la constatation des faits sont critiquées en référence à la présomption d'innocence (art. 6 par. 2 CEDH, 32 al. 1 Cst. et 10 CPP), le principe "in dubio pro reo" n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 7 p. 82).
1.2. La cour cantonale a retenu que l'appartement de la route A._ - dans lequel la police a découvert de l'héroïne dans des "pucks" et des sachets "minigrip", des produits de coupage et une balance électronique - servait de lieu de stockage et de conditionnement pour le trafic de cette drogue. Au moment de son arrestation, le recourant se trouvait à Genève depuis une dizaine de jours et logeait dans l'appartement depuis à tout le moins une semaine. En outre, il rencontrait C._ et D._ dans un cybercafé. Ces faits avaient été constatés par deux agents de police, qui avaient consigné leurs observations de manière détaillée dans un rapport d'arrestation, bien que ceux-ci ne fussent pas en mesure de dater précisément le début de la surveillance mise en place. Le recourant avait quant à lui indiqué être arrivé à Genève la veille de son arrestation pour voir son frère et avait contesté avoir rencontré C._ et D._ dans un cybercafé, ce qui était contredit par les constatations de la police. Compte tenu de l'exiguïté de l'appartement, le recourant ne pouvait par ailleurs ignorer que ce lieu servait au stockage et au conditionnement d'héroïne. Les précautions qu'il prenait pour éviter d'être suivi lorsqu'il marchait dans les rues, ses rencontres avec C._ et D._ et la découverte d'une empreinte digitale sur un "puck" d'héroïne caché derrière une plinthe dans l'appartement ne s'expliquaient que par son implication dans le trafic de stupéfiants. De surcroît, il était impensable que le recourant ait ignoré l'existence d'un trafic d'héroïne depuis l'appartement où il séjournait, alors que son propre frère opérait depuis ce lieu. A cet égard, les explications du recourant, selon lesquelles il était venu à Genève pour rendre visite à B._, n'étaient pas crédibles, dès lors que le dernier nommé ne résidait pas en Suisse et qu'il faisait lui-même l'objet d'une mesure d'éloignement dans le pays. Ces divers éléments, une fois rapprochés, laissaient apparaître que le recourant était impliqué dans le trafic d'héroïne qui avait cours depuis l'appartement, même si son rôle exact n'avait pu être déterminé.
1.3. Le recourant développe une argumentation appellatoire, et partant irrecevable, dans laquelle il rediscute librement l'appréciation des preuves à laquelle s'est livrée la cour cantonale, sans démontrer en quoi celle-ci serait arbitraire. Tel est notamment le cas dans la partie de son mémoire intitulée "les faits", puis lorsque le recourant évoque de prétendues imprécisions dans les observations de la police, sans démontrer en quoi la cour cantonale en aurait tiré des constatations insoutenables. Celui-ci n'explique pas davantage pourquoi l'autorité précédente aurait fait preuve d'arbitraire en retenant, sur la base des observations policières, qu'il était arrivé à Genève une dizaine de jours avant son arrestation, qu'il s'était rendu dans un cybercafé, avait rencontré à plusieurs reprises C._ et D._, et circulait dans les rues en utilisant des précautions afin de ne pas être suivi. Il en va de même lorsque le recourant tente d'opposer ses déclarations en cours d'enquête, ainsi que celles de B._, C._ et D._, aux autres éléments de preuve, dès lors qu'il se contente à cet égard de livrer son propre récit concernant les faits.
Par ailleurs, le recourant ne démontre pas que la cour cantonale aurait fait preuve d'arbitraire en considérant que le fait que B._ se soit livré au trafic de stupéfiants depuis l'appartement constituait un élément à charge, "vu les liens de confiance qui unissent normalement une fratrie". En effet, contrairement à ce qu'il prétend, l'autorité précédente n'a pas entendu ainsi affirmer que la culpabilité de B._ impliquait celle du recourant eu égard à leurs liens familiaux, mais qu'il était invraisemblable que le prénommé eût dissimulé à son frère les activités auxquelles il se livrait dans l'appartement où tous deux séjournaient. La cour cantonale a d'ailleurs précisé que le recourant n'était pas un simple compatriote de passage qui se serait trouvé au mauvais endroit au mauvais moment. L'autorité précédente n'a pas davantage fait preuve d'arbitraire en constatant qu'au vu de l'exiguïté de l'appartement, le recourant savait nécessairement que celui-ci servait de lieu de stockage et de conditionnement pour la drogue. Il ressort certes de l'état de fait que l'héroïne découverte par la police était dissimulée derrière une plinthe, dans un placard ou sous l'évier, de sorte qu'elle n'était pas directement visible en pénétrant dans l'appartement. Cependant, de l'héroïne y était manipulée, puisque ce lieu servait à la préparation et au conditionnement de la drogue, et que B._ s'y est vu remettre des sachets "minigrip" le 2 juin 2014. En outre, les pains de marijuana étaient stockés directement dans le salon de l'appartement. Partant, il n'apparaît nullement insoutenable de considérer que les activités liées au trafic ne pouvaient avoir échappé au recourant, qui séjournait dans l'appartement depuis plusieurs jours.
1.4. Le recourant soutient en outre que la cour cantonale aurait arbitrairement retenu qu'une trace papillaire de son auriculaire gauche avait été trouvée sur un "puck" caché dans l'appartement. Selon lui, il ne ressortirait pas des annexes du rapport de police du 22 juillet 2014 qu'une telle empreinte fût identifiée. Il ressort toutefois dudit rapport qu'une comparaison entre une fiche dactyloscopique du recourant et une trace trouvée sur l'un des "pucks" d'héroïne a permis d'identifier celle-ci comme provenant de l'auriculaire gauche de l'intéressé (art. 105 al. 2 LTF; pièce C-86 du dossier cantonal). L'une des annexes de ce rapport confirme que la trace en question a été identifiée comme provenant du "doigt 10" du recourant (art. 105 al. 2 LTF; pièce C-99 du dossier cantonal). Le rapport complémentaire du 13 août 2014 indique à cet égard que dans le champ "remarque" des informations officielles établies par les services AFIS figure le numéro du doigt pour lequel la correspondance a été établie. Ce champ peut occasionnellement préciser le nombre de points concordants relevés lors de la comparaison, ce qui n'est pas le cas lorsque ce nombre est égal ou supérieur à douze (art. 105 al. 2 LTF; pièce C-158 du dossier cantonal). Dès lors, il n'apparaît pas que l'autorité précédente aurait constaté de manière insoutenable qu'une trace papillaire de l'auriculaire gauche du recourant avait été identifiée sur un "puck" d'héroïne. Contrairement à ce que soutient le recourant, le fait qu'il soit droitier n'affaiblit en rien la crédibilité de ce moyen de preuve. Mal fondé, ce grief doit être rejeté.
1.5. Il découle de ce qui précède que la cour cantonale n'a nullement fait preuve d'arbitraire dans l'appréciation des preuves et la constatation des faits. Elle n'a pas davantage violé le principe "in dubio pro reo", à propos duquel le recourant présente une argumentation similaire à celle développée à l'appui de son grief d'arbitraire. L'arrêt attaqué n'apparaît pas, à cet égard, arbitraire dans ses motifs ni dans son résultat. Ce grief doit être rejeté dans la mesure où il est recevable.
2.
Le recourant reproche à la cour cantonale de l'avoir condamné pour des faits qui ne ressortent pas de l'acte d'accusation. Il estime que les faits décrits dans l'ordonnance pénale du 8 septembre 2014, qui tient lieu d'acte d'accusation, ne lui permettaient pas de comprendre quel comportement lui était précisément reproché.
2.1. Le contenu de l'ordonnance pénale est déterminé par sa double fonction de jugement ou d'acte d'accusation en cas d'opposition (art. 356 al. 1 2ème phrase CPP). Selon l'art. 353 al. 1 let. c CPP, l'ordonnance pénale contient les faits imputés au prévenu. La description des faits doit satisfaire aux exigences d'une accusation (<ref-ruling> consid. 1.4 p. 190).
L'art. 9 CPP consacre la maxime d'accusation. Selon cette disposition, une infraction ne peut faire l'objet d'un jugement que si le ministère public a déposé auprès du tribunal compétent un acte d'accusation dirigé contre une personne déterminée sur la base de faits précisément décrits. En effet, Ie prévenu doit connaître exactement les faits qui lui sont imputés et les peines et mesures auxquelles il est exposé, afin qu'il puisse s'expliquer et préparer efficacement sa défense (<ref-ruling> consid. 2.2 p. 65). Le tribunal est lié par l'état de fait décrit dans l'acte d'accusation (principe de I'immutabilité de I'acte d'accusation), mais peut s'écarter de I'appréciation juridique qu'en fait Ie ministère public (art. 350 al. 1 CPP), à condition d'en informer les parties présentes et de les inviter à se prononcer (art. 344 CPP). Les art. 324 ss CPP règlent la mise en accusation, en particulier Ie contenu strict de I'acte d'accusation. Selon I'art. 325 CPP, l'acte d'accusation désigne notamment les actes reprochés au prévenu, Ie lieu, la date et l'heure de leur commission ainsi que leurs conséquences et Ie mode de procéder de l'auteur (let. f); les infractions réalisées et les dispositions légales applicables de I'avis du ministère public (let. g). Ainsi, l'acte d'accusation doit contenir les faits qui, de I'avis du ministère public, correspondent à tous les éléments constitutifs de l'infraction reprochée au prévenu (<ref-ruling> consid. 2.2 p. 65).
2.2. Aux termes de l'art. 19 al. 1 LStup, est notamment puni d'une peine privative de liberté de trois ans au plus ou d'une peine pécuniaire celui qui, sans droit, cultive, fabrique ou produit de toute autre manière des stupéfiants (let. a); celui qui, sans droit, entrepose, expédie, transporte, importe, exporte des stupéfiants ou les passe en transit (let. b); celui qui, sans droit, aliène ou prescrit des stupéfiants, en procure de toute autre manière à un tiers ou en met dans le commerce (let. c); celui qui, sans droit, possède, détient ou acquiert des stupéfiants ou s'en procure de toute autre manière (let. d); celui qui prend des mesures aux fins de commettre une des infractions visées aux let. a à f (let. g). L'art. 19 LStup ne réprime pas globalement le "trafic de stupéfiants", mais érige différents comportements en autant d'infractions indépendantes, chaque acte, même répété, constituant une infraction distincte (<ref-ruling> consid. 2.1.3 p. 39; <ref-ruling> consid. 3.2 p. 193; arrêt 6B_474/2016 du 6 février 2017 consid. 3.1).
L'art. 19 al. 1 let. g LStup punit celui qui prend des mesures aux fins de commettre l'une des infractions prévues aux lettres précédentes. Cette disposition, entrée en vigueur le 1er juillet 2011, a conservé la même portée que l'art. 19 ch. 1 al. 6 aLStup qu'il a remplacé (cf. arrêt 6B_940/2014 du 16 septembre 2015 consid. 6.2.1 et la référence citée), de sorte que la jurisprudence rendue sous l'égide de cette dernière disposition conserve toute sa pertinence. L'art. 19 al. 1 let. g LStup vise tant la tentative que les actes préparatoires qualifiés qu'il tient pour aussi répréhensibles que les comportements énumérés aux let. a à f (<ref-ruling> consid. 3.2 p. 102 s.; <ref-ruling> consid. 3.2 p. 193). Ne peut prendre des mesures au sens de l'art. 19 al. 1 let. g LStup que celui qui projette d'accomplir l'un des actes énumérés à l'art. 19 al. 1 let. a à f LStup en qualité d'auteur ou de coauteur avec d'autres personnes. Celui qui n'envisage pas de commettre un tel acte ne prend pas de mesures à cette fin puisqu'il ne tente ni ne prépare l'une des infractions en question. Il est au plus complice de celui qu'il aide à commettre un des actes prévus à l'art. 19 al. 1 let. a à g LStup (ATF <ref-ruling> consid. 3.2 p. 193 s.; <ref-ruling> consid. 2.2.2 p. 136).
2.3. La cour cantonale a considéré que l'ordonnance pénale du 8 septembre 2014, tenant lieu d'acte d'accusation, décrivait de manière suffisamment précise les faits et les infractions reprochés au recourant. Selon elle, on comprenait, à la lecture de cet acte, qu'il était reproché au recourant d'avoir pris des mesures en vue de détenir ou de stocker l'héroïne qui se trouvait dans l'appartement dans lequel il logeait. Elle l'a ainsi condamné pour infraction à l'art. 19 al. 1 let. g LStup, combiné avec l'art. 19 al. 1 let. b et d LStup.
2.4. En l'espèce, l'ordonnance pénale du 8 septembre 2014, tenant lieu d'acte d'accusation, indique que le recourant a, à tout le moins entre la fin mai 2014 et le 2 juin 2014, participé à un trafic de stupéfiants en compagnie de ses comparses, ou qu'il a "à tout le moins pris des mesures aux fins de participer audit trafic de stupéfiants". Il est encore précisé ce qui suit concernant le recourant : " La présence du prévenu dans l'appartement au moment où son frère B._ se faisait remettre de l'héroïne et lorsque C._ jetait de l'héroïne dans l'évier de la cuisine au moment de l'arrivée de la police, ainsi que la trace papillaire de son auriculaire sur un puck d'héroïne permettent d'établir que le prévenu connaissait l'existence de ce trafic et à défaut de pouvoir clairement déterminer son rôle dans ce trafic, le faisceau d'indices qui précèdent suffit à conclure que le prévenu prenait des mesures aux fins de commettre une des infractions énumérées à l'article 19 al. 1 let. a à f LStup ". L'ordonnance pénale tenant lieu d'acte d'accusation n'indiquait ainsi nullement quelle infraction le recourant projetait d'accomplir et ne décrivait aucun des comportements énumérés à l'art. 19 al. 1 let. a à f LStup, mais se bornait à renvoyer à cette disposition. Le recourant ne pouvait dès lors comprendre quels actes lui était reprochés, outre le fait d'avoir tenu un rôle indéterminé dans un trafic de stupéfiants. Dans ces circonstances, c'est en violation du principe d'accusation que la cour cantonale a retenu que le recourant avait pris des mesures pour détenir ou stocker de la drogue en vue de son conditionnement ou de sa revente, ces comportements ne ressortant aucunement de l'acte d'accusation. L'autorité précédente n'a d'ailleurs pas indiqué quelles mesures auraient été concrètement prises par le recourant afin de commettre une infraction à l'art. 19 al. 1 let. b ou d LStup. Le recours doit dès lors être admis sur ce point, l'arrêt annulé et la cause renvoyée à la cour cantonale pour nouvelle décision.
3.
Le recourant, qui n'obtient que partiellement gain de cause, supportera une partie des frais judiciaires (art. 66 al. 1 LTF). Le canton de Genève est quant à lui dispensé de frais judiciaires (art. 66 al. 4 LTF). Il versera des dépens réduits au mandataire du recourant pour la procédure devant le Tribunal fédéral (art. 68 al. 2 LTF). La requête d'assistance judiciaire est sans objet dans la mesure où le recourant a droit à des dépens; elle doit être rejetée pour le reste, dès lors que le recours était dénué de chances de succès s'agissant des aspects sur lesquels le recourant a succombé (art. 64 al. 1 LTF). Le recourant supporte dans cette mesure des frais, fixés en tenant compte de sa situation financière qui n'apparaît pas favorable.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est partiellement admis, l'arrêt attaqué est annulé et la cause est renvoyée à l'autorité cantonale pour nouvelle décision. Pour le surplus, le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée dans la mesure où elle n'est pas sans objet.
3.
Une partie des frais judiciaires, arrêtée à 600 fr., est mise à la charge du recourant.
4.
Le canton de Genève versera au conseil du recourant une indemnité de 1'500 fr. à titre de dépens pour la procédure devant le Tribunal fédéral.
5.
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 5 septembre 2017
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
Le Greffier : Graa