From 50117d738af526cbfbd5afa50b9a501acb0fb9ce Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Thu, 30 Nov 2017 14:20:32 +0100 Subject: Android: use a canonical data dir for Qt environment variables ApplicationInfo.dataDir holds "/data/user/0" (Blackberry PRIV running Android 6.0.1), which is in fact a soft link to "/data/data". This directory is used as a prefix for various Qt environment variables, including QML2_IMPORT_PATH, which in turn is used for resolving QML type URIs, looking up Qt Quick Controls 2 styles, and so on. The QML engine is not happy with "/data/data" and "/data/user/0" being wildly mixed for QML types in the same module. Use the canonical path instead to avoid such conflicts. Change-Id: I1fd45736728ee662942d7ef48c3fbc553981c59b Task-number: QTBUG-64868 Reviewed-by: Lars Knoll --- src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java index 99c4ecca07..6e92e64028 100644 --- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java +++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java @@ -569,7 +569,8 @@ public abstract class QtLoader { boolean bundlingQtLibs = false; if (m_contextInfo.metaData.containsKey("android.app.bundle_local_qt_libs") && m_contextInfo.metaData.getInt("android.app.bundle_local_qt_libs") == 1) { - localPrefix = m_context.getApplicationInfo().dataDir + "/"; + File dataDir = new File(m_context.getApplicationInfo().dataDir); + localPrefix = dataDir.getCanonicalPath() + "/"; pluginsPrefix = localPrefix + "qt-reserved-files/"; if (libsDir == null) -- cgit v1.2.3