Closed rmheuer closed 1 year ago
Try adding wpinet to the list of dependencies.
The error still occurs with wpinet dependencies:
implementation "edu.wpi.first.wpinet:wpinet-java:${WPILIB_VERSION}"
implementation "edu.wpi.first.wpinet:wpinet-jni:${WPILIB_VERSION}:linuxx86-64"
The -jni classifiers no longer reliably work in 2023. They've always been problematic, and some of the changes made this year basically broke them completely. Theres a new method that doesn't use the -jni artifacts, but theres no documentation or templates on how to do them. I will try to make a template for the new way to build client apps this week. And we will update the documentation as well.
Theres a new method that doesn't use the -jni artifacts, but theres no documentation or templates on how to do them.
Do you have any hints while you write more formal documentation? My team is hitting this too (sadly I couldn't find this issue before posting to ChiefDelphi).
One option would be to use the 2022 artifacts. The roborio's NT server will connect with NT 4 or NT 3 clients.
Ah, fair enough. I wasn't sure that compatibility was maintained between versions, glad to hear that it was.
We've been having the same problem running on our Raspberry Pi (linuxarm64
).
I found a workaround using LD_PRELOAD
to force libwpiutil.so
to load:
wget https://frcmaven.wpi.edu/artifactory/release/edu/wpi/first/wpiutil/wpiutil-cpp/2023.2.1/wpiutil-cpp-2023.2.1-linuxarm64.zip
unzip -d wpiutil-cpp wpiutil-cpp-2023.2.1-linuxarm64.zip && rm wpiutil-cpp-2023.2.1-linuxarm64.zip
LD_PRELOAD=wpiutil-cpp/linux/arm64/shared/libwpiutiljni.so ./gradlew run
Note that this workaround is for linuxarm64
. It should work the same on linuxx86-64
, but you'll have to be sure to download the correct version of wpiutil.
Building the project as in https://github.com/wpilibsuite/StandaloneAppSamples/blob/main/Java/build.gradle works properly for linuxx86-64
.
Describe the bug When trying to start a NetworkTables client on Linux x86-64, there is a symbol lookup error for
_ZN3wpi6detail18PromiseFactoryBase13CreateRequestEv
.To Reproduce Steps to reproduce the behavior:
NetworkTableInstance#startClient4
orNetworkTableInstance#startClient3
to start a clientExpected behavior The client would start with no errors, and connect to the server if it is running.
Desktop (please complete the following information):
Additional context
Log output:
Code used to reproduce:
build.gradle (info not relevant to the issue not included)