1. Drop the one year limit - if players are good enough to go pro out of HS, let them. Make the D-League more of a true minor league - 1st round players on their rookie deals can be sent there but maintain their standard salaries, rookie deal players from the 2nd or free agency can be sent down at D-League rates. This both gives players a chance to develop and reduces the financial incentive to go pro early for all but the very best prospects.
2. Make scholarship offers 3 if not 4 years long - meaning that if Anthony Davis wants to play one year and go pro, he can, but that scholarship slot is taken for another 2 years. This greatly reduces the incentive for schools to appeal to one-and-done guys.
3. Pay D1 players a salary - straight from the NCAA and based on a revenue sharing model. Should be somewhere in the high 4 or low 5 figures a year, on top of the scholarship. Everyone with a scholarship gets the same amount, and different schools can't offer higher pay. The reason I have zero sympathy for the NCAA in this whole mess is that they make billions from the talents of legal adults whose only direct "pay" is free tuition that is often of no value to them.
The net result is nobody with enough talent to play in the NBA has to go to college if they don't want to, there's less of a jump in compensation (and a big drop in exposure) for lesser talents to leave school, and universities have a strong incentive to recruit athletes who are actually interested in being students, and keep the athletes they have academically involved. The quality of play in the NCAA drops a bit, but it's much less of a charade, and talented players have the power to choose their own path.