At a meeting in Singapore this week, the Asian Cricket Council decided Bangladesh will hold the tournament, to be played in the Twenty20 format for the first time, just before the ICC World T20 in neighbouring India.
"Pakistan proposed that Bangladesh should host next year's Asia Cup and everyone agreed," Bangladesh Cricket Board (BCB) president Nazmul Hassan told reporters late Wednesday.
Featuring five Asian countries, the tournament will be played from February 24 to March 6, with the World T20 running from March to April.
Bangladesh also hosted the tournament in 2012 and 2014, along with 2000 and 1988.
More From This Section
Australia's cricketers had been due to play a two-Test series in Bangladesh this month but the tour was scrapped after official Australian warnings that militants may attack Western interests.
Safety fears for foreigners have heightened in Muslim-majority Bangladesh after the recent murders of an Italian aid worker and a Japanese farmer which were claimed by the Islamic State group.