The prosecutor's office in the eastern city of Frankfurt an der Oder said that it had dropped proceedings for suspected manslaughter against the military police officer, whose name was not released, due to a lack of evidence.
"A reconstruction of the incident at a garrison in Bavaria (in southern Germany) showed that the military policeman could not be accused of a crime," it said in a statement.
The prosecutor's office found that the man had fired about 15 shots at two vehicles that failed to stop at a checkpoint after dark - even after warning shots had sounded.
The military policeman saw that a fellow soldier was lying on the ground and heard further shots so that he mistakenly assumed the checkpoint was under attack and opened fire, the prosecutor's office found.
In addition to the three casualties, another four people were wounded.
"The accused had to make a decision in a fraction of a second," the prosecutor's office said, noting there were repeated attacks on soldiers in Afghanistan at the time.
Press reports last September said that the German government had paid compensation to the victims' family and Defence Minister Franz-Josef Jung made a surprise visit to Afghanistan to pay his respects to the relatives.
Jung welcomed the prosecutor's decision Tuesday, which he said "put an end to a long period of insecurity for our soldiers" that could have undermined attempts to establish security in Afghanistan, where Germany has some 3,800 soldiers under NATO command.
The shooting was one of a string of incidents that analysts say are damaging the reputation of the almost 70,000 international troops as well as the Afghan government, which needs the backing of the local population if it wants to beat a Taliban-led insurgency.