Skip to content
This repository has been archived by the owner on Aug 22, 2021. It is now read-only.

How add JNI part #60

Open
LionZXY opened this issue Oct 4, 2020 · 3 comments
Open

How add JNI part #60

LionZXY opened this issue Oct 4, 2020 · 3 comments

Comments

@LionZXY
Copy link

LionZXY commented Oct 4, 2020

After build binary for mac i add dylib from example/java/build/ in root project folder.
But after launch i catch error:

FATAL ERROR in native method: Can't find class [org/drinkless/tdlib/Client]
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
	- locked <0x00000007955868b0> (a java.util.Vector)
	- locked <0x00000007955f5490> (a java.util.Vector)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1850)
	at java.lang.Runtime.loadLibrary0(Runtime.java:871)
	- locked <0x000000079559e488> (a java.lang.Runtime)
	at java.lang.System.loadLibrary(System.java:1124)
	at dev.whyoleg.ktd.LinkKt.loadTdlib(Link.kt:8)
	at dev.whyoleg.ktd.TelegramRawClient.<clinit>(TelegramRawClient.kt:8)
	at dev.whyoleg.ktd.NativeClient.<init>(NativeClient.kt:8)
	at dev.whyoleg.ktd.Telegram.client(Telegram.kt:11)
	at MainKt.main(Main.kt:17)
	at MainKt$$$main.invoke(Unknown Source)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
	at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
	at MainKt.main(Main.kt)
[ 1][t 0][1601808549.902974128][tl_jni_object.cpp:37]	Can't find class [org/drinkless/tdlib/Client]

What i should do for fix this? Any guide for this?

@whyoleg
Copy link
Owner

whyoleg commented Oct 4, 2020

HI
You don't need to build tdlib on your own. It's already comes inside library, and it's built with different package name.

@LionZXY
Copy link
Author

LionZXY commented Oct 6, 2020

But without binary i got a error:

Try to load tdlib as library
Try to load tdlib from artifact
java.lang.UnsatisfiedLinkError: no tdjni in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
	at java.lang.Runtime.loadLibrary0(Runtime.java:871)
	at java.lang.System.loadLibrary(System.java:1124)
	at dev.whyoleg.ktd.LinkKt.loadTdlib(Link.kt:8)
	at dev.whyoleg.ktd.TelegramRawClient.<clinit>(TelegramRawClient.kt:8)
	at dev.whyoleg.ktd.NativeClient.<init>(NativeClient.kt:8)
	at dev.whyoleg.ktd.Telegram.client(Telegram.kt:11)
	at MainKt.main(Main.kt:17)
	at MainKt$$$main.invoke(Unknown Source)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
	at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
	at MainKt.main(Main.kt)
java.lang.UnsatisfiedLinkError: /private/var/folders/td/p_d11w9d0rq_cpj5brh6qxlw0000gn/T/libtdjni6370140314835422122.dylib: dlopen(/private/var/folders/td/p_d11w9d0rq_cpj5brh6qxlw0000gn/T/libtdjni6370140314835422122.dylib, 1): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /private/var/folders/td/p_d11w9d0rq_cpj5brh6qxlw0000gn/T/libtdjni6370140314835422122.dylib
  Reason: image not found
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817)
	at java.lang.Runtime.load0(Runtime.java:810)
	at java.lang.System.load(System.java:1088)
	at dev.whyoleg.ktd.LinkKt.loadTdlib(Link.kt:22)
	at dev.whyoleg.ktd.TelegramRawClient.<clinit>(TelegramRawClient.kt:8)
	at dev.whyoleg.ktd.NativeClient.<init>(NativeClient.kt:8)
	at dev.whyoleg.ktd.Telegram.client(Telegram.kt:11)
	at MainKt.main(Main.kt:17)
	at MainKt$$$main.invoke(Unknown Source)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
	at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
	at MainKt.main(Main.kt)
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /Users/nikitakulikov/private/PassRememberTelegram/libs/macos/libtdjni.dylib
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1820)
	at java.lang.Runtime.load0(Runtime.java:810)
	at java.lang.System.load(System.java:1088)
	at dev.whyoleg.ktd.LinkKt.loadTdlib(Link.kt:27)
	at dev.whyoleg.ktd.TelegramRawClient.<clinit>(TelegramRawClient.kt:8)
	at dev.whyoleg.ktd.NativeClient.<init>(NativeClient.kt:8)
	at dev.whyoleg.ktd.Telegram.client(Telegram.kt:11)
	at MainKt.main(Main.kt:17)
	at MainKt$$$main.invoke(Unknown Source)
	at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt$createCoroutineUnintercepted$$inlined$createCoroutineFromSuspendFunction$IntrinsicsKt__IntrinsicsJvmKt$1.invokeSuspend(IntrinsicsJvm.kt:205)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlin.coroutines.ContinuationKt.startCoroutine(Continuation.kt:115)
	at kotlin.coroutines.jvm.internal.RunSuspendKt.runSuspend(RunSuspend.kt:19)
	at MainKt.main(Main.kt)
Try to load tdlib from local path: /Users/nikitakulikov/private/PassRememberTelegram/libs/macos/libtdjni.dylib
Can't load tdlib

Process finished with exit code 1

I push sample in github:
https://github.com/LionZXY/TdLibSampleKotlin

@LionZXY
Copy link
Author

LionZXY commented Oct 6, 2020

Big thanks for your support! I can discuss it in telegram on russian lang: t.me/lionzxy

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants