Concerns were raised when the 31-year-old Manchester City player managed less than 30 minutes in the friendly against Norway on Saturday, and it has now been confirmed that he will miss the tournament in Poland and Ukraine.
Barry, who won his 53rd international cap as a half-time substitute during win 1-0 friendly in Oslo, will be replaced in England's 23-man squad by Everton defender Phil Jagielka.
"I’m very disappointed to lose Gareth," said manager Roy Hodgson said in a statement on the Football Association's official website.
"Not only was he a member of my original 23-man squad but he has featured prominently in the England team over the last few years.
"I know how much he wanted to be part of the tournament but I’m sure he will still have a part to play with England after the Euros. I wish him a speedy recovery.”
England's official 23-man squad is due to be submitted to Uefa by 11am on Wednesday.