Flintoff, 32, retired from test cricket last year following the Ashes victory over Australia [ Images ] but had hoped to represent England again in one-day cricket.
"The decision to end my career came yesterday after consultation with medical advisers," he said in a statement.
"I was told that the problems I have been trying to overcome in re-hab for the last year following the latest in a series of operations would not recover sufficiently to allow a comeback."
Flintoff underwent knee surgery last August and needed a second operation in January. He has missed the entire county season.
"I will now be taking a break before deciding which future direction to take," he added.
Flintoff played 79 Tests and 141 one-day internationals, scoring 3,845 Test runs, including five centuries at an average of 31.77.
He took 226 Test wickets and scored 3,394 runs in ODIs, taking 169 wickets.