[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cannot locate symbol "utext_setup_67"
From: |
Ivan Vučica |
Subject: |
Re: cannot locate symbol "utext_setup_67" |
Date: |
Sat, 2 May 2020 21:41:48 +0000 |
> On 2 May 2020, at 18:58, Frederik Seiffert <frederik@algoriddim.com> wrote:
>
> Hi Stefan,
>
>>>> I rebuilt the Android Toolchain with the current state of master today and
>>>> updated the cmake arguments with "-DANDROID_STL=c++_shared“ according to
>>>> the examples, but now I’m getting a crash with
>>>>
>>>> java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
>>>> "utext_setup_67" referenced by „(…)==/lib/x86/libgnustep-base.so"…
>
>
> You should be able to fix this by loading the ICU libraries (icuuc and
> icui18n) at runtime before your native library that is using GNUstep, as is
> done in the example project:
>
> https://github.com/gnustep/android-examples/blob/master/hello-objectivec/app/src/main/java/com/algoriddim/androidgnusteptest/MainActivity.java#L14-L18
>
> TBH I’m not entirely sure why this is necessary, although it might be related
> to this ugly hack I had to employ to remove the version numbers from
> SONAME/DT_NEEDED in the ICU libs, as the Android NDK doesn’t support
> versioned libraries (if someone has a suggestion as to how to do this in a
> less hacky way please let me know):
I very vaguely recall Android dynamic linker not recursively loading all ELF
dependencies back when I was fiddling with this in 2014 or so. I’m pleasantly
surprised that the list is _shorter_ than I remember it being.