Log in

View Full Version : NetworkTables from GRIP throw an error upon initilization


SupremeSteak1
14-01-2016, 19:41
I have created a GRIP program which identifies reflective tape and have published the network tables. It was when I started to access the tables that I had a problem. I am using the example from the screensteps tutorial, but where I say getTables("GRIP/myContoursReport"), I get the following error: Exception in thread "main" java.lang.UnsatisfiedLinkError: no ntcore in java.library.path. This seems to be unavoidable and I have yet to have any luck fixing it using the VERY few solutions on google. This is the one block to us using GRIP on our robot and it would help greatly. Thanks to anyone who can help, and if anyone needs further information, just ask!

ThomasClark
14-01-2016, 21:36
Does NetworkTables work at all, not with GRIP? Try making a new robot project and getting some values from NetworkTables.

SupremeSteak1
15-01-2016, 08:34
I am testing the NetworkTables in an empty robot project, but there is still no success. To see if it is GRIP would that just be the same thing except instead of "GRIP/myContoursReport", I would put the source of another NetworkTable producing thing? If so, what should I use in its place? Lastly, from what I have seen so far, it is a problem with network tables in general because it seems to be a low down error independent of which NetworkTable is being gotten. Thanks for your help!

fsilberberg
15-01-2016, 08:50
I am testing the NetworkTables in an empty robot project, but there is still no success. To see if it is GRIP would that just be the same thing except instead of "GRIP/myContoursReport", I would put the source of another NetworkTable producing thing? If so, what should I use in its place? Lastly, from what I have seen so far, it is a problem with network tables in general because it seems to be a low down error independent of which NetworkTable is being gotten. Thanks for your help!
What platform are you attempting to run GRIP on? The unsatisfied link error is happening because the jar you're using does not have a native ntcore binary for your current platform.

SupremeSteak1
15-01-2016, 08:52
I am using Windows 10, however come to think of it, this is from the technical preview and I am not sure when the last time I updated was. Could windows 10 be the issue?

fsilberberg
15-01-2016, 09:04
I doubt it, the same ntcore binary works on 7,8,and 10. That being said, you should definitely update to the final version, there's already been a major update to 10 (back in November). How did you install GRIP?

ThomasClark
15-01-2016, 09:50
I am using Windows 10, however come to think of it, this is from the technical preview and I am not sure when the last time I updated was. Could windows 10 be the issue?

Wait, are you running a program on your machine, or on the robot?

SupremeSteak1
15-01-2016, 11:13
On my machine.

SupremeSteak1
15-01-2016, 11:14
Downloaded the executable or installer, can't remember, from their website and clicked next next next.

Peter Johnson
15-01-2016, 11:23
In the console window before the UnsatisfiedLinkError you should see a line that starts with "platform:", e.g. "platform: /Linux/amd64/". What does it print on your machine?

SupremeSteak1
15-01-2016, 14:35
I get /Windows/amd64/

origamitaco
15-01-2016, 15:12
That's funny because when I run GRIP on my Windows 10 machine the Driver Station says linux/amd64. I can't even deploy GRIP to the RIO (errors that I can't solve) so it's running on the laptop for now.

Peter Johnson
15-01-2016, 16:11
I get /Windows/amd64/

That should be correct (for a 64-bit JRE). The next debugging step requires looking inside of the .jar file GRIP is loading to make sure the file is actually there. In C:\Users\<name>\AppData\Local\GRIP\app there should be a "core-1.0.0-all.jar" file. If you rename this to end in .zip, you can look inside it with either WinZip or Windows Explorer (if you didn't know, .jar files are just .zip files under the hood). There should be a Windows\amd64\ntcore.dll file inside... if there isn't, that's the issue (with reinstalling GRIP as the probable solution), if there is, I'm not quite sure what the issue is.

That's funny because when I run GRIP on my Windows 10 machine the Driver Station says linux/amd64. I can't even deploy GRIP to the RIO (errors that I can't solve) so it's running on the laptop for now.

Your robot code will print "platform: Linux/arm" to the Driver Station console because it's running on the roboRio (an ARM platform). GRIP, on the other hand, is running on your Windows machine and will print "Windows/amd64" or "Windows/x86" depending on the JRE. You really shouldn't be seeing "Linux/amd64" anywhere with a Windows / roboRio combination.

SupremeSteak1
15-01-2016, 16:19
I actually just found a solution to the problem. I downloaded the 10th file down and linked it as an external jar in eclipse. It completely solved my problem. Thanks for your help as it also solved some other problems I was having!

Here is the download link for the working NetworkTables.jar: http://first.wpi.edu/FRC/roborio/maven/release/edu/wpi/first/wpilib/networktables/java/NetworkTables/3.0.0-SNAPSHOT/