Like it was said earlier, the NBA thought the answer was giving players more money to stay with their team, and other than Westbrook and Griffin(who ended up getting traded) it really hasn't worked.
Hard cap would probably be the best solution, but I doubt the players agree to anything close to a hard cap or that limits their own control. We saw it with LeBron, we kinda saw it with CP3, PG13, Kyrie, and Kawhi.
The next CBA talks will be an interesting one, because despite the lack or parity, the NBA is still increasing their profits.