[mythtv] Problem with 32-bit android version
Peter Bennett
pb.mythtv at gmail.com
Sat Oct 8 15:36:49 UTC 2022
Hi Mark
Using your new android packaging changes, I renamed the packaging
directory and cloned it fresh from github to make sure nothing was left
over. I also installed the 21.4.7075529 NDK, which the config files call
for. I built libs and apk using the profile you set up for firetv-max
Installing on a firetv-4k works, but running mythfrontend crashes after
the splash screen shows.
This is from logcat
10-08 11:11:29.909 18168 18193 I Qt : qt started
10-08 11:11:29.924 18168 18193 E AndroidRuntime: FATAL EXCEPTION:
qtMainLoopThread
10-08 11:11:29.924 18168 18193 E AndroidRuntime: Process:
org.mythtv.mythfrontend, PID: 18168
10-08 11:11:29.924 18168 18193 E AndroidRuntime:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol
"iconv_open" referenced by
"/data/app/org.mythtv.mythfrontend-1/lib/arm/libexiv2.14.so"...
The exact same build using the shield profile runs fine on the shield.
Looking at the libs build for libexiv shows this (for both the
firetv-max and shield libs):
-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Success
-- Found Iconv:
/home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
-- ICONV_INCLUDE_DIR :
-- ICONV_LIBRARIES :
/home/peter/Android/Sdk/ndk/21.4.7075529/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc.a
If iconv is built into libc, then why is it trying to use dlopen to open
a library for it?
The apk file does include /lib/armeabi-v7a/libiconv.so (And the shield
apk also contains it).
Even if it does not want to use the built-in iconv, it should still find
the libiconv.so.
On my linux system the only iconv.so in lib are in /php/20210902 and in
perl where it is capitalized as Iconv.so. This indicates that maybe it
is built-in these days and we can dispense with building iconv in the
libs. Would this solve the problem?
Also there is in the exiv2 source a cmake file called FindIconv.cmake.
That is what comes up with the message Iconv_IS_BUILT_IN. Perhaps some
change is needed.
Do you have any ideas?
Peter
More information about the mythtv-dev
mailing list