Go to Post I don't just participate in FIRST, and it’s not part of my life. FIRST is my life. - sciguy125 [more]
Home
Go Back   Chief Delphi > Technical > Programming > Java
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 17-01-2017, 18:11
Psychicowl's Avatar
Psychicowl Psychicowl is offline
Registered User
FRC #3039
 
Join Date: Jan 2017
Location: Destrehan, Louisiana
Posts: 7
Psychicowl is an unknown quantity at this point
Could not instantiate robot?

So I'm testing an electrical system my team rigged up.

-First I uploaded firmware to the radio
-Then I configured Said Radio
-I imaged the RoboRio
-And put Java on the RoboRio

-Now when I went to go upload code to the RoboRio I got the following error in my drivers station even though my upload log gave me a successful build

ERROR 1 ERROR Unhandled exception instantiating robot org.usfirst.frc.team3039.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:216)] edu.wpi.first.wpilibj.RobotBase.main(RobotBase.jav a:218)
ERROR Unhandled exception instantiating robot org.usfirst.frc.team3039.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:216)]
WARNING: Robots don't quit!
ERROR: Could not instantiate robot org.usfirst.frc.team3039.robot.Robot!

There are no visible errors in my code, so any help would be much appreciated!
Reply With Quote
  #2   Spotlight this post!  
Unread 17-01-2017, 19:10
SamCarlberg's Avatar
SamCarlberg SamCarlberg is offline
GRIP, WPILib. 2084 alum
FRC #2084
Team Role: Mentor
 
Join Date: Nov 2015
Rookie Year: 2009
Location: MA
Posts: 136
SamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to behold
Re: Could not instantiate robot?

Can you post the contents of your Robot.java file? Make sure to use the [code] tags to format it nicely.
__________________
WPILib
GRIP, RobotBuilder
Reply With Quote
  #3   Spotlight this post!  
Unread 17-01-2017, 19:19
Psychicowl's Avatar
Psychicowl Psychicowl is offline
Registered User
FRC #3039
 
Join Date: Jan 2017
Location: Destrehan, Louisiana
Posts: 7
Psychicowl is an unknown quantity at this point
Re: Could not instantiate robot?

This is my Robot class


package org.usfirst.frc.team3039.robot;

import org.usfirst.frc.team3039.robot.subsystems.DigitalS ystem;
import org.usfirst.frc.team3039.robot.subsystems.Drivetra in;
import org.usfirst.frc.team3039.robot.subsystems.Shooter;

import edu.wpi.first.wpilibj.IterativeRobot;
import edu.wpi.first.wpilibj.command.Command;
import edu.wpi.first.wpilibj.command.Scheduler;
import edu.wpi.first.wpilibj.livewindow.LiveWindow;
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 Drivetrain drivetrain = new Drivetrain();
public static Shooter shooter = new Shooter();
public static DigitalSystem digitalsystem = new DigitalSystem();
public static OI oi;

Command autonomousCommand;
SendableChooser autochooser;

/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/
public void robotInit() {
oi = new OI();
drivetrain = new Drivetrain();
shooter = new Shooter();
digitalsystem = new DigitalSystem();
autochooser = new SendableChooser();


// chooser.addDefault("Default Auto", new ExampleCommand());
// chooser.addObject("My Auto", new MyAutoCommand());
SmartDashboard.putData("Auto mode", autochooser);
}

/**
* 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) autochooser.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.
if (autonomousCommand != null) autonomousCommand.cancel();
}

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

/**
* This function is called periodically during test mode
*/
public void testPeriodic() {
LiveWindow.run();
}
}
Reply With Quote
  #4   Spotlight this post!  
Unread 17-01-2017, 20:18
SamCarlberg's Avatar
SamCarlberg SamCarlberg is offline
GRIP, WPILib. 2084 alum
FRC #2084
Team Role: Mentor
 
Join Date: Nov 2015
Rookie Year: 2009
Location: MA
Posts: 136
SamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to beholdSamCarlberg is a splendid one to behold
Re: Could not instantiate robot?

Seems like at least one of these constructors has a problem:

Code:
public static Drivetrain drivetrain = new Drivetrain();
public static Shooter shooter = new Shooter();
public static DigitalSystem digitalsystem = new DigitalSystem();
Without seeing your code, I'm guessing you're trying to use the same CAN ID, PWM port, or digital I/O pin for multiple components.

It's also a very bad idea to have a variable be "public static" and not final because something else can overwrite it accidentally. You're doing the same thing in robotInit(), which will almost certainly crash your robot program with the same error that's causing this one.

If you haven't done much programming already, you should look into using RobotBuilder. It'll generate all this code for you so you don't have to worry about it.
__________________
WPILib
GRIP, RobotBuilder
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 12:35.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi