CHICAGO—Prosecutors dropped all 16 charges against actor Jussie Smollett, who was accused of staging a hate crime against himself, after he agreed to surrender a $10,000 bond, drawing strong rebukes from Chicago Mayor Rahm Emanuel and his police superintendent.

Mr. Smollett, who stars on the Fox television show “Empire,” had been accused of planning and faking the January attack in which he said two men yelling racist and antigay slurs and a pro-Trump slogan hit him and placed a rope around his neck.

The...