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