Realistically, I don't think there's anything that can be done to fix the All-Star Game itself. Players care more about not getting hurt than winning, so the quality of the game suffers. Ultimately, it's nothing but an exhibition game, which is fine for those who like to watch exhibition games. I think at some point many fans reach a stage where they don't care about exhibition games, and once they do I doubt many ever go back.
I think that the Pro Bowl was the earliest wide-scale victim of this phenomenon. The game didn't happen until after the season (minus the Super Bowl) was over. The players didn't care outside of the trip to Hawaii, nobody wanted to get hurt, the game lost its luster real hard. Like in the 1980s to my recollection. Last year they changed the format to flag football to try to bring some interest back in!
The MLB All-Star Game probably had a later useful run, but even then for about a decade they decided to make the winning league be the hosts of the World Series just to put some skin in the game. Didn't make a lot of sense, I don't think it worked (they eventually knocked it off) but it shows that MLB had the same concerns about fan engagement. People love the Home Run Derby, but the game...?
The NBA is facing the same issue. They've been playing around with skills competitions, and that's probably the right route to take, but I don't think the game itself is easily fixable.
That's great until a few years from now when the Kings go 62-20 but don't get HCA in the finals because the West All-Stars were an aging Curry and a geriatric LeBron and his not-NBA-quality sidekick Bronny. It didn't work for MLB, everybody hated it, I can't imagine that it would work for the NBA.