Code not working

I’m having some trouble with my code. Everytime I try to upload it keeps on showing this:
[cRIO] FPGA Hardware GUID: 0xa14c11bde4bb64aef6a86fc52a294cd9
[cRIO] FPGA Software GUID: 0xa14c11bde4bb64aef6a86fc52a294cd9
[cRIO] java.lang.NullPointerException: Null motor provided
[cRIO] at edu.wpi.first.wpilibj.RobotDrive.<init>(RobotDrive.java:139)
[cRIO] at edu.wpi.first.wpilibj.templates.RobotTemplate.RobotDriveInit(RobotTemplate.java:67)
[cRIO] at edu.wpi.first.wpilibj.templates.RobotTemplate.robotInit(RobotTemplate.java:41)
[cRIO] at edu.wpi.first.wpilibj.IterativeRobot.startCompetition(IterativeRobot.java:72)
[cRIO] at edu.wpi.first.wpilibj.RobotBase.startApp(RobotBase.java:169)
[cRIO] in virtual method #10 of javax.microedition.midlet.MIDlet(bci=17)
[cRIO] at javax.microedition.midlet.MIDletTunnelImpl.callStartApp(64)
[cRIO] at com.sun.squawk.imp.MIDletMainWrapper.main(110)
[cRIO] in virtual method #95 of com.sun.squawk.Klass(bci=25)
[cRIO] at com.sun.squawk.Isolate.run(1506)
[cRIO] at java.lang.Thread.run(231)
[cRIO] in virtual method #47 of com.sun.squawk.VMThread(bci=42)
[cRIO] in static method #3 of com.sun.squawk.VM(bci=6)
[cRIO] WARNING: Robots don’t quit!
[cRIO] —> The startCompetition() method (or methods called by it) should have handled the exception above.

Code:

/*----------------------------------------------------------------------------*/
/* Copyright (c) FIRST 2008. All Rights Reserved.                             */
/* Open Source Software - may be modified and shared by FRC teams. The code   */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project.                                                               */
/*----------------------------------------------------------------------------*/

package edu.wpi.first.wpilibj.templates;


import edu.wpi.first.wpilibj.DriverStationLCD;
import edu.wpi.first.wpilibj.IterativeRobot;
import edu.wpi.first.wpilibj.Joystick;
import edu.wpi.first.wpilibj.RobotDrive;
import edu.wpi.first.wpilibj.Servo;
import edu.wpi.first.wpilibj.SpeedController;
import edu.wpi.first.wpilibj.Talon;
import edu.wpi.first.wpilibj.Victor;
import edu.wpi.first.wpilibj.camera.AxisCamera;


public class RobotTemplate extends IterativeRobot 
{   

    private Joystick leftStick;
    private Joystick rightStick;
    private Joystick shootStick;
    private SpeedController ShooterFront;
    private SpeedController ShooterBack;        
    private SpeedController Left;
    private SpeedController Right;
    private RobotDrive drive;
    private AxisCamera camera;
    private Servo servo;
    private DriverStationLCD lcd = DriverStationLCD.getInstance();
    
    public void robotInit() 
    {
        
      JoystickInit();
      RobotDriveInit();
      TalonInit();
      ServoInit();
      VictorInit();
      
      
      getWatchdog().setExpiration(0.1); 
        lcd.println(DriverStationLCD.Line.kUser2, 1, "Enabled!");
        lcd.updateLCD();
    }
    
    public void VictorInit()
    {
       ShooterFront = new Victor(4);
       ShooterBack = new Victor(3);
    }
    
    public void JoystickInit()
    {
        leftStick = new Joystick(1);
        rightStick = new Joystick(2); 
        shootStick = new Joystick(3);
    } 
    
    public void RobotDriveInit()
    {
        drive = new RobotDrive(Left, Right);
    }
        
    public void TalonInit()
    {
        Left = new Talon(1);
        Right = new Talon(2);
    }
    
    public void ServoInit()
    {
        servo = new Servo(7);
    }
    
    public void autonomousInit()
    {
        getWatchdog().setEnabled(true);
        lcd.println(DriverStationLCD.Line.kUser2, 1, "Autonomous!");
        lcd.updateLCD();
    }
    
    public void autonomousPeriodic()
    {
        
    }

    public void teleopInit()
    {
        getWatchdog().setEnabled(true);
        lcd.println(DriverStationLCD.Line.kUser2, 1, "Teleop!");
        lcd.updateLCD();
    }
    long x = 1;
    public void teleopContinuous()
    {
        
    }
    
    public void teleopPeriodic() 
    {
         AxisCamera.getInstance().writeCompression(0);
         AxisCamera.getInstance().writeResolution(AxisCamera.ResolutionT.k320x240);
         AxisCamera.getInstance().writeBrightness(10);
         
         drive.tankDrive(-leftStick.getY(), -rightStick.getY());
         
         if(shootStick.getRawButton(1))
    {
             servo.setAngle(30);
    }
         
         else
    {
             servo.setAngle(0);
    }
         
         if(shootStick.getRawButton(6))
    {
             ShooterFront.set(100);
             ShooterBack.set(100);
    }
        else if(shootStick.getRawButton(7))
    {
             ShooterFront.set(0);
             ShooterBack.set(0);
    }
 }

    public void testPeriodic() 
    {

    }
}

A possible problem would be that your RobotDrive is getting a null pointer because it is trying to use motors that are still null. If that is the case, the solution is simple, just move the RobotDriveInit method below the TalonInit method. Let me know if that works.

That’s exactly the problem.

It works! Thank you!