Fwd: Subsurface-mobile crosssbuild

Willem Ferguson willemferguson at zoology.up.ac.za
Sun Jul 17 06:58:20 PDT 2016


Hallo Axel,
I hope that the text underneath is not too unreadable.

The short version of my request:
     I get an error when running a cross-built Subsurface Android,
indicating kirigami has not been loaded.

The long version of my request;
     I installed Qt5.7 (see location in build.sh)
     Did the patches you suggested.
     Exported JAVA_HOME
     The build runs ok, creating the .apk

     Underneath the listings of:
         build.sh in packaging/android
         mobile-resources.qrc
         mobile-components.sh
         adb logcat output.

Any ideas what I am doing wrong?

Kind regards,
willem

git describe
==========
v4.5.2-1475-geaed18b

Build.sh:
=================
set -e
PLATFORM=$(uname)
# (trick to get the absolute path, either if we're called with a
# absolute path or a relative path)
pushd $(dirname $0)/../../
export SUBSURFACE_SOURCE=$PWD
popd

# is this a release or debug build
BUILD_TYPE=Debug
if [ "$1" = "release" ] || [ "$1" = "Release" ] ; then
     shift
     BUILD_TYPE=Release
fi
if [ "$1" = "debug" ] || [ "$1" = "Debug" ] ; then
     # this is the default - still need to eat the argument if given
     shift
fi

if [ "$1" = "-buildnr" ] ; then
     shift
     BUILD_NR="\"$1\""
     shift
else
     BUILD_NR="\"0\""
fi

# Configure where we can find things here
export ANDROID_NDK_ROOT=/usr/share/android-ndk-r12     # --->
export QT5_ANDROID=/home/willem/Qt/5.7                 # --->

#if [ ! -z "$QT5_ANDROID" ] ; then
#    echo "Using Qt5 in $QT5_ANDROID"
#elif [ -d "$SUBSURFACE_SOURCE/../Qt/5.7" ] ; then
#    export QT5_ANDROID=$SUBSURFACE_SOURCE/../Qt/5.7
#elif [ -d "$SUBSURFACE_SOURCE/../Qt/5.6" ] ; then
#    export QT5_ANDROID=$SUBSURFACE_SOURCE/../Qt/5.6
#elif [ -d "$SUBSURFACE_SOURCE/../Qt/5.5" ] ; then
#    export QT5_ANDROID=$SUBSURFACE_SOURCE/../Qt/5.5
#else
#    echo "Cannot find Qt 5.7, 5.6 or 5.5 under $SUBSURFACE_SOURCE/../Qt"
#    exit 1
#fi

if [ $PLATFORM = Darwin ] ; then
        export
ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT-$SUBSURFACE_SOURCE/../android-sdk-macosx}
        export ANDROID_NDK_HOST=darwin-x86_64
else
        export ANDROID_SDK_ROOT=/usr/share/android-sdk-linux     # --->
        export ANDROID_NDK_HOST=linux-x86
fi

     ........................................

export QT5_ANDROID_BIN=${QT5_ANDROID}/android_${QT_ARCH}/bin

if [ ! -e ndk-$ARCH ] ; then
  $ANDROID_NDK_ROOT/build/tools/make_standalone_toolchain.py
--arch=$ARCH --install-dir=ndk-$ARCH --api=16
fi
export BUILDROOT=$PWD
export PATH=${BUILDROOT}/ndk-$ARCH/bin:$PATH
export PREFIX=${BUILDROOT}/ndk-$ARCH/sysroot/usr
export PKG_CONFIG_LIBDIR=${PREFIX}/lib/pkgconfig
export CC=${BUILDROOT}/ndk-$ARCH/bin/${BUILDCHAIN}-gcc
export CXX=${BUILDROOT}/ndk-$ARCH/bin/${BUILDCHAIN}-g++
# autoconf seems to get lost without this
export SYSROOT=${BUILDROOT}/ndk-$ARCH/sysroot
export CFLAGS="--sysroot=${SYSROOT}"
export CPPFLAGS="--sysroot=${SYSROOT}"
export CXXFLAGS="--sysroot=${SYSROOT}"
# Junk needed for qt-android-cmake
export ANDROID_STANDALONE_TOOLCHAIN=${BUILDROOT}/ndk-$ARCH
#if [ $PLATFORM = Darwin ] ; then
#    JAVA_HOME=$(/usr/libexec/java_home)
#    export JAVA_HOME
#else
     export JAVA_HOME=/usr/share/jdk1.8.0_77             # ----->
#    export JAVA_HOME=/usr                              # ----->
#fi


mobile-resouces.qrc
===================
<RCC>
     <qresource prefix="/qml">
         <file>main.qml</file>
         <file>Preferences.qml</file>
         <file>About.qml</file>
         <file>CloudCredentials.qml</file>

             ...........

         <file alias="menu-edit.png">icons/menu-edit.png</file>
         <file alias="menu-back.png">icons/menu-back.png</file>
         <file alias="nocloud.svg">icons/nocloud.svg</file>
     </qresource>
     <qresource prefix="/imports">
         <file
alias="org/kde/kirigami/Action.qml">kirigami/Action.qml</file>
                 # ---->
         <file
alias="org/kde/kirigami/ApplicationWindow.qml">kirigami/ApplicationWindow.qml</file>


Mobile-components.sh
=====================
#!/bin/bash
#
# if you run the build.sh script to build Subsurface you'll never need
# this, but if you build your binaries differently for some reason and
# you want to build Subsurface-mobile, running this from within the
# checked out source directory (not your build directory) should do the
# trick - you can also run this to update to the latest upstream when
# you don't want to rerun the whole build.sh script.

SRC=$(cd .. ; pwd)

if [ ! -d "$SRC/subsurface" ] || [ ! -d "mobile-widgets" ] || [ ! -d
"core" ] ; then
     echo "please start this script from the Subsurface source directory
(which needs to be named \"subsurface\")."
     exit 1
fi

if [ "$1" = "-nopull" ] ; then
     NOPULL=1
fi

# now bring in the latest Kirigami mobile components plus a couple of
icons that we need
# first, get the latest from upstream
# yes, this is a bit overkill as we clone a lot of stuff for just a few
files, but this way
# we stop having to manually merge our code with upstream all the time
# as we get closer to shipping a production version we'll likely check
out specific tags
# or SHAs from upstream
cd $SRC
if [ ! -d kirigami ] ; then
     git clone git://github.com/KDE/kirigami
fi
if [ "$NOPULL" = "" ] ; then
     pushd kirigami
     git pull
     popd
fi
if [ ! -d breeze-icons ] ; then
     git clone git://anongit.kde.org/breeze-icons
fi
if [ "$NOPULL" = "" ] ; then
     pushd breeze-icons
     git pull
     popd
fi

# now copy the components and a couple of icons into plae
MC=$SRC/subsurface/mobile-widgets/qml/kirigami
PMMC=kirigami/src/controls                                # ------------->
BREEZE=breeze-icons

rm -rf $MC
mkdir -p $MC/icons
cp -R $PMMC/* $MC/
#cp $PMMC/../fallbacktheme/*qml $MC/
cp -R $PMMC/templates/* $MC/                                  #
----------->

# fix plugin requirement
sed -i -e 's/^plugin kirigamiplugin/# plugin kirigamiplugin/' $MC/qmldir


adb logcat | -i subsurface:
===========================
07-17 11:08:38.755  4145  4145 I ApplicationPackageManager:
load=org.subsurfacedivelog.mobile, bg=192-192, dr=192-192
07-17 11:08:48.805  4438  4438 I Timeline: Timeline:
Activity_launch_request id:org.subsurfacedivelog.mobile time:9386825
07-17 11:08:48.835 13025 13025 W SELinux : SELinux:
seapp_context_lookup: seinfo=default, level=s0:c512,c768,
pkgname=org.subsurfacedivelog.mobile
07-17 11:08:48.875  3468  3579 D ISSUE_DEBUG: InputChannelName : 8ae118c
Starting org.subsurfacedivelog.mobile
07-17 11:08:48.875 13025 13025 D InjectionManager: fillFeatureStoreMap
org.subsurfacedivelog.mobile
07-17 11:08:48.875 13025 13025 I InjectionManager: Constructor
org.subsurfacedivelog.mobile, Feature store :{}
07-17 11:08:48.925  3468  3579 V WindowStateAnimator: Finishing drawing
window Window{8ae118c u0 d0 Starting org.subsurfacedivelog.mobile}:
mDrawState=DRAW_PENDING
07-17 11:08:48.925  3468  3579 V WindowStateAnimator: Finishing drawing
window Window{8ae118c u0 d0 Starting org.subsurfacedivelog.mobile}:
mDrawState=COMMIT_DRAW_PENDING
07-17 11:08:49.065 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Concurrent.so:
unused DT entry: type 0x1d arg 0xc8e
07-17 11:08:49.065 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Concurrent.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.065 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Gui.so: unused DT
entry: type 0x1d arg 0x5066f
07-17 11:08:49.065 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Gui.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.075 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Widgets.so:
unused DT entry: type 0x1d arg 0x6b435
07-17 11:08:49.075 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Widgets.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.085 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Svg.so: unused DT
entry: type 0x1d arg 0x8f3b
07-17 11:08:49.085 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Svg.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.095 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Positioning.so:
unused DT entry: type 0x1d arg 0x5afb
07-17 11:08:49.095 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Positioning.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.105 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Network.so:
unused DT entry: type 0x1d arg 0x119fc
07-17 11:08:49.105 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Network.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.105 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Qml.so: unused DT
entry: type 0x1d arg 0x33ce0
07-17 11:08:49.105 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Qml.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.115 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Quick.so: unused
DT entry: type 0x1d arg 0x3d948
07-17 11:08:49.115 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Quick.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.125 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5AndroidExtras.so:
unused DT entry: type 0x1d arg 0x5920
07-17 11:08:49.125 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5AndroidExtras.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.135 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Bluetooth.so:
unused DT entry: type 0x1d arg 0x6e39
07-17 11:08:49.135 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5Bluetooth.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.135 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5QuickParticles.so: unused
DT entry: type 0x1d arg 0x365b
07-17 11:08:49.135 13025 13025 W linker  :
/data/app/org.subsurfacedivelog.mobile-1/lib/arm/libQt5QuickParticles.so: unsupported
flags DT_FLAGS_1=0x81
07-17 11:08:49.145 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/platforms/android/libqtforandroid.so:
unused DT entry: type 0x1d arg 0x9315
07-17 11:08:49.145 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/platforms/android/libqtforandroid.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.145 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/platforms/android/libqtforandroid.so:
is missing DT_SONAME will use basename as a replacement:
"libqtforandroid.so"
07-17 11:08:49.155 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/bearer/libqandroidbearer.so:
unused DT entry: type 0x1d arg 0x1746
07-17 11:08:49.155 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/bearer/libqandroidbearer.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.155 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/bearer/libqandroidbearer.so:
is missing DT_SONAME will use basename as a replacement:
"libqandroidbearer.so"
07-17 11:08:49.155 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/position/libqtposition_android.so:
unused DT entry: type 0x1d arg 0x132d
07-17 11:08:49.155 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/position/libqtposition_android.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.155 13025 13025 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/plugins/position/libqtposition_android.so:
is missing DT_SONAME will use basename as a replacement:
"libqtposition_android.so"
07-17 11:08:49.205  3468  4436 D ISSUE_DEBUG: InputChannelName : 8e404c1
org.subsurfacedivelog.mobile/org.qtproject.qt5.android.bindings.QtActivity
07-17 11:08:49.345 13025 13077 D libGLESv1: DTS_GLAPI : DTS is not
allowed for Package : org.subsurfacedivelog.mobile
07-17 11:08:49.385  3468  4451 V WindowStateAnimator: Finishing drawing
window Window{8e404c1 u0 d0
org.subsurfacedivelog.mobile/org.qtproject.qt5.android.bindings.QtActivity}:
mDrawState=DRAW_PENDING
07-17 11:08:49.405  3468  3579 I ActivityManager: Displayed
org.subsurfacedivelog.mobile/org.qtproject.qt5.android.bindings.QtActivity:
+587ms
07-17 11:08:49.405  3468  3579 I Timeline: Timeline:
Activity_windows_visible id: ActivityRecord{523995c u0
org.subsurfacedivelog.mobile/org.qtproject.qt5.android.bindings.QtActivity
t83} time:9387428
07-17 11:08:49.415 13025 13091 W Subsurface: (null):0 ((null)):
QFont::setPointSizeF: Point size <= 0 (-1.000000), must be greater than 0
07-17 11:08:49.435 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so:
unused DT entry: type 0x1d arg 0x4bd
07-17 11:08:49.435 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.435 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick.2/libqtquick2plugin.so:
is missing DT_SONAME will use basename as a replacement:
"libqtquick2plugin.so"
07-17 11:08:49.445 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Controls/libqtquickcontrolsplugin.so:
unused DT entry: type 0x1d arg 0x41f5
07-17 11:08:49.445 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Controls/libqtquickcontrolsplugin.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.445 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Controls/libqtquickcontrolsplugin.so:
is missing DT_SONAME will use basename as a replacement:
"libqtquickcontrolsplugin.so"
07-17 11:08:49.455 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Window.2/libwindowplugin.so:
unused DT entry: type 0x1d arg 0x493
07-17 11:08:49.455 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Window.2/libwindowplugin.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.455 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Window.2/libwindowplugin.so:
is missing DT_SONAME will use basename as a replacement:
"libwindowplugin.so"
07-17 11:08:49.455 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Dialogs/libdialogplugin.so:
unused DT entry: type 0x1d arg 0x249b
07-17 11:08:49.455 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Dialogs/libdialogplugin.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.455 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Dialogs/libdialogplugin.so:
is missing DT_SONAME will use basename as a replacement:
"libdialogplugin.so"
07-17 11:08:49.465 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so:
unused DT entry: type 0x1d arg 0x1b00
07-17 11:08:49.465 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so:
unsupported flags DT_FLAGS_1=0x81
07-17 11:08:49.465 13025 13105 W linker  :
/data/data/org.subsurfacedivelog.mobile/qt-reserved-files/qml/QtQuick/Layouts/libqquicklayoutsplugin.so:
is missing DT_SONAME will use basename as a replacement:
"libqquicklayoutsplugin.so"
07-17 11:08:49.475 13025 13091 W Subsurface: (null):0 ((null)):
QQmlApplicationEngine failed to load component
07-17 11:08:49.475 13025 13091 W Subsurface: (null):0 ((null)):
qrc:///qml/main.qml:9 module "org.kde.kirigami" is not installed
07-17 11:08:49.475 13025 13091 W Subsurface:
07-17 11:08:49.855  4145  4145 I ApplicationPackageManager:
load=org.subsurfacedivelog.mobile, bg=192-192, dr=192-192








More information about the subsurface mailing list