[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