NetworkTables from GRIP throw an error upon initilization

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!

Does NetworkTables work at all, not with GRIP? Try making a new robot project and getting some values from NetworkTables.

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.

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?

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?

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

On my machine.

Downloaded the executable or installer, can’t remember, from their website and clicked next next next.

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?

I get /Windows/amd64/

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.

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
tcore.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.

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.

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/