I'll take a look later tonight and see what I can do.
#android #java #dev #asknostr
Still workin' on my project. I've been running into a series of issues trying to get nostr:npub1llfht66qadyxv44q9rkmequztav07r2ufgd6ytl8w3wjs3ffa5yqy398ja's nostr-java library to work with my app.
If anyone wants to help me, I'd really appreciate it. Currently, I'm trying to figure out how to set the "java.version" system property (https://howtodoinjava.com/java/basics/java-system-properties/#1-1-runtime-environment-properties), because it's required to be set for the jetty library to work properly: https://github.com/jetty/jetty.project/blob/ae6f98ed47ada09dd393102cea0bdf29bc7eb2ea/jetty-core/jetty-alpn/jetty-alpn-java-server/src/main/java/org/eclipse/jetty/alpn/java/server/JDK9ServerALPNProcessor.java#L37.
So far, nothing I've found online for setting this system property has resulted in any different behavior (the "java.version" property is always "0").
E.g., I tried this: https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_system_properties
If I try to set this value in the runtime code, I get this error message in logcat:
`System : Ignoring attempt to set property "java.version" to value "9.0.0".`
nostr:note1t2wltkcwpjvh90q5fv5vgl4qg978jnjch80d0uwd5thuwe2g34qqqy3gh5
Discussion
I'm not sure if jetty works with android. I have no significant android or java experience, so I'm having a hard time researching this, but I'm working on it.
Here's the stack trace, FYI
```
03-24 08:30:54.368 32385 32448 E nostr.client.Client: null
03-24 08:30:54.368 32385 32448 E nostr.client.Client: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: No Client ALPNProcessors!
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.client.util.InputStreamResponseListener.get(InputStreamResponseListener.java:219)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at nostr.ws.Connection.getRelayInformation(Connection.java:122)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at nostr.ws.Connection.updateRelayMetadata(Connection.java:134)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at nostr.client.Client.updateRelayInformation(Client.java:285)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at nostr.client.Client.openRelay(Client.java:210)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at nostr.client.Client.lambda$init$5(Client.java:265)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at nostr.client.Client.$r8$lambda$TJeOxInLs9kBKY3hUg_Yv7ULkvU(Unknown Source:0)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at nostr.client.Client$$ExternalSyntheticLambda7.call(D8$$SyntheticClass:0)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at java.util.concurrent.FutureTask.run(FutureTask.java:264)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at java.lang.Thread.run(Thread.java:1012)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: Caused by: java.lang.IllegalStateException: No Client ALPNProcessors!
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.client.dynamic.HttpClientTransportDynamic.newConnection(HttpClientTransportDynamic.java:202)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.io.ssl.SslClientConnectionFactory.newConnection(SslClientConnectionFactory.java:125)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector$Configurator.newConnection(ClientConnector.java:646)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector.newConnection(ClientConnector.java:530)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector$ClientSelectorManager.newConnection(ClientConnector.java:562)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.io.ManagedSelector.createEndPoint(ManagedSelector.java:384)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.io.ManagedSelector$CreateEndPoint.run(ManagedSelector.java:1076)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:934)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1078)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: ... 1 more
03-24 08:30:54.368 32385 32448 E nostr.client.Client: Suppressed: java.lang.IllegalStateException: org.eclipse.jetty.alpn.java.client.JDK9ClientALPNProcessor@131e6ea not applicable for java 0
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.alpn.java.client.JDK9ClientALPNProcessor.init(JDK9ClientALPNProcessor.java:37)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.lambda$new$0$org-eclipse-jetty-alpn-client-ALPNClientConnectionFactory(ALPNClientConnectionFactory.java:69)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory$$ExternalSyntheticLambda0.accept(D8$$SyntheticClass:0)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.util.ServiceLoaderSpliterator.tryAdvance(ServiceLoaderSpliterator.java:46)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at java.util.Spliterator.forEachRemaining(Spliterator.java:332)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:792)
03-24 08:30:54.368 32385 32448 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.
03-24 08:30:54.368 32385 32448 E nostr.client.Client: ... 10 more
```
I haven't confirmed whether or not providing ConscryptClientALPNProcessor instead of JDK9ClientALPNProcessor will solve the problem. I tried doing this but for some reason, it didn't work. I read the documentation for clues on how to enable conscrypt. I think this explains it: https://eclipse.dev/jetty/documentation/jetty-11/operations-guide/index.html#og-protocols-ssl-conscrypt
I still haven't figured out how I would be able to do this in my app, though, which is being built using gradle.
I added the conscrypt client to my app's dependencies, and now this is the stack trace:
03-25 12:55:02.948 28205 28344 E nostr.client.Client: null
03-25 12:55:02.948 28205 28344 E nostr.client.Client: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: No Client ALPNProcessors!
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.client.util.InputStreamResponseListener.get(InputStreamResponseListener.java:219)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.ws.Connection.getRelayInformation(Connection.java:122)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.ws.Connection.updateRelayMetadata(Connection.java:134)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client.updateRelayInformation(Client.java:285)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client.openRelay(Client.java:210)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client.lambda$init$5(Client.java:265)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client.$r8$lambda$TJeOxInLs9kBKY3hUg_Yv7ULkvU(Unknown Source:0)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client$$ExternalSyntheticLambda7.call(D8$$SyntheticClass:0)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.concurrent.FutureTask.run(FutureTask.java:264)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Thread.run(Thread.java:1012)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Caused by: java.lang.IllegalStateException: No Client ALPNProcessors!
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.client.dynamic.HttpClientTransportDynamic.newConnection(HttpClientTransportDynamic.java:202)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ssl.SslClientConnectionFactory.newConnection(SslClientConnectionFactory.java:125)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector$Configurator.newConnection(ClientConnector.java:646)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector.newConnection(ClientConnector.java:530)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector$ClientSelectorManager.newConnection(ClientConnector.java:562)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ManagedSelector.createEndPoint(ManagedSelector.java:384)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ManagedSelector$CreateEndPoint.run(ManagedSelector.java:1076)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:934)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1078)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 1 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt_openjdk_jni-linux-aarch_64.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.System.loadLibrary(System.java:1765)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.reflect.Method.invoke(Native Method)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:297)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:289)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.security.AccessController.doPrivileged(AccessController.java:46)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibraryFromHelperClassloader(NativeLibraryLoader.java:289)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:262)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.load(NativeLibraryLoader.java:162)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:106)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeCryptoJni.init(NativeCryptoJni.java:50)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeCrypto.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.OpenSSLProvider.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.OpenSSLProvider.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.OpenSSLProvider.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.conscrypt.client.ConscryptClientALPNProcessor.init(ConscryptClientALPNProcessor.java:38)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.lambda$new$0$org-eclipse-jetty-alpn-client-ALPNClientConnectionFactory(ALPNClientConnectionFactory.java:69)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory$$ExternalSyntheticLambda0.accept(D8$$SyntheticClass:0)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.util.ServiceLoaderSpliterator.tryAdvance(ServiceLoaderSpliterator.java:46)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.Spliterator.forEachRemaining(Spliterator.java:332)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:792)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 10 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt_openjdk_jni-linux-aarch_64.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.System.loadLibrary(System.java:1765)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 24 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt_openjdk_jni.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 34 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt_openjdk_jni.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.System.loadLibrary(System.java:1765)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 24 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 34 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.System.loadLibrary(System.java:1765)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 24 more
I think conscrypt can load one of these libraries from the "resource" folder: https://github.com/google/conscrypt/blob/59de3194ca10ac29521b837928e467029c1d7479/openjdk/src/main/java/org/conscrypt/NativeLibraryLoader.java#L165
But adding the library to resource/META_INF/native/ didn't change the resulting behavior.
I added the conscrypt client to my app's dependencies, and now this is the stack trace:
03-25 12:55:02.948 28205 28344 E nostr.client.Client: null
03-25 12:55:02.948 28205 28344 E nostr.client.Client: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: No Client ALPNProcessors!
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.client.util.InputStreamResponseListener.get(InputStreamResponseListener.java:219)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.ws.Connection.getRelayInformation(Connection.java:122)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.ws.Connection.updateRelayMetadata(Connection.java:134)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client.updateRelayInformation(Client.java:285)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client.openRelay(Client.java:210)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client.lambda$init$5(Client.java:265)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client.$r8$lambda$TJeOxInLs9kBKY3hUg_Yv7ULkvU(Unknown Source:0)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at nostr.client.Client$$ExternalSyntheticLambda7.call(D8$$SyntheticClass:0)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.concurrent.FutureTask.run(FutureTask.java:264)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Thread.run(Thread.java:1012)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Caused by: java.lang.IllegalStateException: No Client ALPNProcessors!
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.client.dynamic.HttpClientTransportDynamic.newConnection(HttpClientTransportDynamic.java:202)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ssl.SslClientConnectionFactory.newConnection(SslClientConnectionFactory.java:125)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector$Configurator.newConnection(ClientConnector.java:646)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector.newConnection(ClientConnector.java:530)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ClientConnector$ClientSelectorManager.newConnection(ClientConnector.java:562)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ManagedSelector.createEndPoint(ManagedSelector.java:384)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.io.ManagedSelector$CreateEndPoint.run(ManagedSelector.java:1076)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:934)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1078)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 1 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt_openjdk_jni-linux-aarch_64.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.System.loadLibrary(System.java:1765)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.reflect.Method.invoke(Native Method)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:297)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader$1.run(NativeLibraryLoader.java:289)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.security.AccessController.doPrivileged(AccessController.java:46)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibraryFromHelperClassloader(NativeLibraryLoader.java:289)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:262)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.load(NativeLibraryLoader.java:162)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadFirstAvailable(NativeLibraryLoader.java:106)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeCryptoJni.init(NativeCryptoJni.java:50)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeCrypto.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.OpenSSLProvider.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.OpenSSLProvider.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.OpenSSLProvider.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.conscrypt.client.ConscryptClientALPNProcessor.init(ConscryptClientALPNProcessor.java:38)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.lambda$new$0$org-eclipse-jetty-alpn-client-ALPNClientConnectionFactory(ALPNClientConnectionFactory.java:69)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory$$ExternalSyntheticLambda0.accept(D8$$SyntheticClass:0)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.util.ServiceLoaderSpliterator.tryAdvance(ServiceLoaderSpliterator.java:46)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.Spliterator.forEachRemaining(Spliterator.java:332)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:792)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.eclipse.jetty.alpn.client.ALPNClientConnectionFactory.
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 10 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt_openjdk_jni-linux-aarch_64.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.System.loadLibrary(System.java:1765)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 24 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt_openjdk_jni.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 34 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt_openjdk_jni.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.System.loadLibrary(System.java:1765)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 24 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 34 more
03-25 12:55:02.948 28205 28344 E nostr.client.Client: Suppressed: java.lang.UnsatisfiedLinkError: dlopen failed: library "libconscrypt.so" not found
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1082)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.Runtime.loadLibrary0(Runtime.java:1003)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at java.lang.System.loadLibrary(System.java:1765)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:54)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibraryFromCurrentClassloader(NativeLibraryLoader.java:318)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: at org.conscrypt.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:273)
03-25 12:55:02.948 28205 28344 E nostr.client.Client: ... 24 more
Please open an issue in github with all the information. I'll happily take a look later.
The issue occurs while I'm fetching the relay Metadata. I need the information because I want to know which nips the relay supports.
I use jetty's httpclient for establishing the remote http connection, and your code does not seem to like it.
Looking at the stack trace, I see it cannot link several native libraries, likely because you're on Android.
I don't think the library can be used on android for the above reasons, and to make it work, I would have to ditch jetty, and use the jdk's native libraries for http and websocket connections. This would be a non trivial change that would take time to develop, but I'll look more into it.