View Single Post
  #1   Spotlight this post!  
Unread 13-02-2016, 19:02
3205patriots 3205patriots is offline
Registered User
FRC #3205
 
Join Date: Jan 2016
Location: Concord
Posts: 6
3205patriots is an unknown quantity at this point
Robot class cannot be instantiated

My Robot class was initially creating an error when it was instantiated. I cannot find the error anymore, but it was the exact same one previously posted on chief delphi, but there was no solution.

ERROR Unhandled exception instantiating robot org.usfirst.frc.team3205.robot.Robot java.lang.ExceptionInInitializerError at [java.lang.Class.forName0(Native Method), java.lang.Class.forName(Class.java:259), edu.wpi.first.wpilibj.RobotBase.main(RobotBase.jav a:197)]

My greatest confusion is that the driver station is now outputting nothing at all for this project, but will output for other projects that work.


Here is our Robot class:

package org.usfirst.frc.team3205.robot;

import edu.wpi.first.wpilibj.IterativeRobot;
import edu.wpi.first.wpilibj.command.Command;
import edu.wpi.first.wpilibj.command.CommandGroup;
import edu.wpi.first.wpilibj.command.Scheduler;
import edu.wpi.first.wpilibj.command.Subsystem;
import edu.wpi.first.wpilibj.livewindow.LiveWindow;

import org.usfirst.frc.team3205.robot.commands.autoDrawbr idgeGroup;
import org.usfirst.frc.team3205.robot.commands.autoDriveO ver;
import org.usfirst.frc.team3205.robot.commands.autoPortcu llisGroup;
import org.usfirst.frc.team3205.robot.commands.autoSallyP ort;
import org.usfirst.frc.team3205.robot.commands.drive;
import org.usfirst.frc.team3205.robot.commands.drawbridge Group;
import org.usfirst.frc.team3205.robot.subsystems.Arm;
import org.usfirst.frc.team3205.robot.subsystems.Drawbrid ge;
import org.usfirst.frc.team3205.robot.subsystems.DriveTra in;
import org.usfirst.frc.team3205.robot.subsystems.Shooter;
import org.usfirst.frc.team3205.robot.subsystems.Vision;

import edu.wpi.first.wpilibj.smartdashboard.SendableChoos er;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboar d;

/**
* The VM is configured to automatically run this class, and to call the
* functions corresponding to each mode, as described in the IterativeRobot
* documentation. If you change the name of this class or the package after
* creating this project, you must also update the manifest file in the resource
* directory.
*/
public class Robot extends IterativeRobot {


//public static int autoMode;
public static DriveTrain drivetrain;
public static Shooter shootey;
public static Arm arm;
public static Vision vision;
public static Drawbridge drawbridge;

public static OI oi;
Command autonomousCommand;
SendableChooser chooser;

/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/
public void robotInit() {
drivetrain = new DriveTrain();
shootey = new Shooter();
arm = new Arm();
vision = new Vision();
drawbridge = new Drawbridge();
oi = new OI();
chooser = new SendableChooser();
chooser.addObject("Auto Drawbridge", new autoDrawbridgeGroup());
chooser.addObject("Auto Portcullis", new autoPortcullisGroup());
chooser.addObject("Auto Sally Port", new autoSallyPort());
chooser.addObject("Drive", new autoDriveOver());
SmartDashboard.putData("Auto mode", chooser);
updateSmartDashboard();
}

/**
* This function is called once each time the robot enters Disabled mode.
* You can use it to reset any subsystem information you want to clear when
* the robot is disabled.
*/
public void disabledInit(){

}

public void disabledPeriodic() {
Scheduler.getInstance().run();
}

/**
* This autonomous (along with the chooser code above) shows how to select between different autonomous modes
* using the dashboard. The sendable chooser code works with the Java SmartDashboard. If you prefer the LabVIEW
* Dashboard, remove all of the chooser code and uncomment the getString code to get the auto name from the text box
* below the Gyro
*
* You can add additional auto modes by adding additional commands to the chooser code above (like the commented example)
* or additional comparisons to the switch structure below with additional strings & commands.
*/
public void autonomousInit() {
autonomousCommand = (Command) chooser.getSelected();

/* String autoSelected = SmartDashboard.getString("Auto Selector", "Default");
switch(autoSelected) {
case "My Auto":
autonomousCommand = new MyAutoCommand();
break;
case "Default Auto":
default:
autonomousCommand = new ExampleCommand();
break;
} */

// schedule the autonomous command (example)
if (autonomousCommand != null) autonomousCommand.start();
}

/**
* This function is called periodically during autonomous
*/
public void autonomousPeriodic() {
Scheduler.getInstance().run();
}

public void teleopInit() {
// This makes sure that the autonomous stops running when
// teleop starts running. If you want the autonomous to
// continue until interrupted by another command, remove
// this line or comment it out.
updateSmartDashboard();
if (autonomousCommand != null) autonomousCommand.cancel();
}

/**
* This function is called periodically during operator control
*/
public void teleopPeriodic() {
Scheduler.getInstance().run();
updateSmartDashboard();
}

/**
* This function is called periodically during test mode
*/
public void testPeriodic() {
LiveWindow.run();
}

public void updateSmartDashboard(){
shootey.updateDashboard();
arm.updateSmartDashboard();
drivetrain.updateSmartDashboard();
}


}
Reply With Quote