Faits : A. Par jugement du 18 avril 2013, le Tribunal de police genevois a acquitté X._ du chef de viol. Il l'a en revanche reconnu coupable de lésions corporelles simples de peu de gravité, de menaces et d'infraction à la loi fédérale sur les armes. Il l'a condamné à une peine pécuniaire de 90 jours-amende à 30 fr., avec sursis pendant 3 ans, et à une amende de 500 francs. Il l'a par ailleurs condamné à verser à A._ les sommes de 2'000 fr. et 8'000 fr. à titre de réparation du tort moral respectivement de participation à ses honoraires. Les faits à l'origine de cette condamnation sont en substance les suivants. Le 20 novembre 2010, la police est intervenue à la suite d'une requête concernant une femme menacée par son compagnon. Les agents ont constaté que A._ s'était réfugiée chez son voisin. Elle a indiqué que son compagnon, X._, était en possession de plusieurs armes à feu et qu'il avait menacé d'en faire usage à travers la porte si la police intervenait. Celui-ci a toutefois ouvert la porte et a pu être maîtrisé alors que le groupe d'intervention se mettait en place. Lors de la fouille de l'appartement, 8 fusils, 11 armes de poing et 4 armes blanches ont été saisis, ainsi que de la munition. X._ a admis qu'étant énervé il avait jeté le téléphone de sa compagne à terre et sa carte SIM par la fenêtre. Il a en revanche contesté avoir menacé de tuer sa compagne et lui avoir dit qu'il tirerait sur la police si elle intervenait. Il a par ailleurs expliqué que les armes retrouvées à son domicile lui avaient été remises par un ami qui s'en débarrassait et qu'il ignorait qu'il devait les déclarer. A._ a exposé que dans le contexte d'une dispute X._ s'était mis à hurler et à l'injurier, la traitant notamment de « pute, salope, chèvre, vache »; il avait également menacé de la tuer en faisant un geste de haut en bas, comme s'il tenait un couteau et voulait l'éviscérer. Il l'avait ensuite giflée, battue à coups de poing et de pied puis saisie par les cheveux pour lui frapper la tête contre un mur. B. En date du 3 avril 2014, la Chambre pénale d'appel et de révision de la Cour de justice genevoise a rejeté l'appel et l'appel joint formés par X._ respectivement A._ contre ce jugement. C. X._ forme un recours en matière pénale contre l'arrêt de la Chambre pénale d'appel et de révision. Il conclut, principalement, à l'annulation de l'arrêt attaqué et à son acquittement ainsi qu'au renvoi de la cause à la cour cantonale pour qu'elle statue sur la question de l'indemnisation qui lui est due. Subsidiairement, il conclut au renvoi de la cause à la cour cantonale pour nouvelle décision. Il sollicite par ailleurs l'assistance judiciaire et l'effet suspensif, qui a été accordé à titre superprovisoire. Invitée à se prononcer sur la requête d'effet suspensif, la cour cantonale s'en rapporte à l'appréciation du Tribunal fédéral; le Ministère public ne s'est pas déterminé.