diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-02-21 01:00:08 +0100 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2019-02-21 01:00:08 +0100 |
commit | 0c0c4a23bc55619c59d2cd0ccd4d4b19bb1fea59 (patch) | |
tree | 0e56c0e3a3acb05232949b6a5d3e18feb48eb25e /src/android | |
parent | a4b8e7141b3dd3bf3c2ac139b44ece0f74b054d8 (diff) | |
parent | 904617dfb83f39a6a379635b64fea6fcd00f241a (diff) |
Merge remote-tracking branch 'origin/5.12' into 5.13
Change-Id: I830beea26863323ab78a5d4b093f7763d77ad3da
Diffstat (limited to 'src/android')
21 files changed, 69 insertions, 47 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java index 4485ed6338..4746920e2a 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -604,11 +604,14 @@ public class QtActivityDelegate } QtNative.loadQtLibraries(loaderParams.getStringArrayList(NATIVE_LIBRARIES_KEY)); ArrayList<String> libraries = loaderParams.getStringArrayList(BUNDLED_LIBRARIES_KEY); - QtNative.loadBundledLibraries(libraries, QtNativeLibrariesDir.nativeLibrariesDir(m_activity)); + String nativeLibsDir = QtNativeLibrariesDir.nativeLibrariesDir(m_activity); + QtNative.loadBundledLibraries(libraries, nativeLibsDir); m_mainLib = loaderParams.getString(MAIN_LIBRARY_KEY); // older apps provide the main library as the last bundled library; look for this if the main library isn't provided - if (null == m_mainLib && libraries.size() > 0) + if (null == m_mainLib && libraries.size() > 0) { m_mainLib = libraries.get(libraries.size() - 1); + libraries.remove(libraries.size() - 1); + } if (loaderParams.containsKey(EXTRACT_STYLE_KEY)) { String path = loaderParams.getString(EXTRACT_STYLE_KEY); @@ -662,8 +665,8 @@ public class QtActivityDelegate } catch (Exception e) { e.printStackTrace(); } - - return true; + m_mainLib = QtNative.loadMainLibrary(m_mainLib, nativeLibsDir); + return m_mainLib != null; } public boolean startApplication() @@ -726,11 +729,7 @@ public class QtActivityDelegate @Override public void run() { try { - String nativeLibraryDir = QtNativeLibrariesDir.nativeLibrariesDir(m_activity); - QtNative.startApplication(m_applicationParameters, - m_environmentVariables, - m_mainLib, - nativeLibraryDir); + QtNative.startApplication(m_applicationParameters, m_environmentVariables, m_mainLib); m_started = true; } catch (Exception e) { e.printStackTrace(); diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index c5e8a5f794..9679fd40f4 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -244,6 +244,41 @@ public class QtNative }); } + public static String loadMainLibrary(final String mainLibrary, final String nativeLibraryDir) + { + final String[] res = new String[1]; + res[0] = null; + m_qtThread.run(new Runnable() { + @Override + public void run() { + try { + String mainLibNameTemplate = "lib" + mainLibrary + ".so"; + File f = new File(nativeLibraryDir + mainLibNameTemplate); + if (!f.exists()) { + try { + ActivityInfo info = m_activity.getPackageManager().getActivityInfo(m_activity.getComponentName(), + PackageManager.GET_META_DATA); + String systemLibraryDir = QtNativeLibrariesDir.systemLibrariesDir; + if (info.metaData.containsKey("android.app.system_libs_prefix")) + systemLibraryDir = info.metaData.getString("android.app.system_libs_prefix"); + f = new File(systemLibraryDir + mainLibNameTemplate); + } catch (Exception e) { + e.printStackTrace(); + return; + } + } + if (!f.exists()) + return; + System.load(f.getAbsolutePath()); + res[0] = f.getAbsolutePath(); + } catch (Exception e) { + Log.e(QtTAG, "Can't load '" + mainLibrary + "'", e); + } + } + }); + return res[0]; + } + public static void setActivity(Activity qtMainActivity, QtActivityDelegate qtActivityDelegate) { synchronized (m_mainActivityMutex) { @@ -321,46 +356,20 @@ public class QtNative }); } - public static boolean startApplication(String params, - final String environment, - String mainLibrary, - String nativeLibraryDir) throws Exception + public static boolean startApplication(String params, final String environment, String mainLib) throws Exception { - String mainLibNameTemplate = "lib" + mainLibrary + ".so"; - File f = new File(nativeLibraryDir + mainLibNameTemplate); - if (!f.exists()) { - try { - ActivityInfo info = m_activity.getPackageManager().getActivityInfo(m_activity.getComponentName(), - PackageManager.GET_META_DATA); - String systemLibraryDir = QtNativeLibrariesDir.systemLibrariesDir; - if (info.metaData.containsKey("android.app.system_libs_prefix")) - systemLibraryDir = info.metaData.getString("android.app.system_libs_prefix"); - f = new File(systemLibraryDir + mainLibNameTemplate); - } catch (Exception e) { - - } - } - if (!f.exists()) - throw new Exception("Can't find main library '" + mainLibrary + "'"); - if (params == null) params = "-platform\tandroid"; - final String mainLibraryPath = f.getAbsolutePath(); final boolean[] res = new boolean[1]; res[0] = false; synchronized (m_mainActivityMutex) { if (params.length() > 0 && !params.startsWith("\t")) params = "\t" + params; - final String qtParams = f.getAbsolutePath() + params; + final String qtParams = mainLib + params; m_qtThread.run(new Runnable() { @Override public void run() { - try { - System.load(mainLibraryPath); - } catch (Exception e) { - Log.i(QtTAG, "Can't load '" + mainLibraryPath + "'", e); - } res[0] = startQtAndroidPlugin(qtParams, environment); setDisplayMetrics(m_displayMetricsScreenWidthPixels, m_displayMetricsScreenHeightPixels, diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtServiceDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtServiceDelegate.java index ae06fa6268..33bcb364de 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtServiceDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtServiceDelegate.java @@ -98,8 +98,8 @@ public class QtServiceDelegate private static final String APP_DISPLAY_METRIC_SCREEN_YDPI_KEY = "display.screen.dpi.y"; private static final String APP_DISPLAY_METRIC_SCREEN_DENSITY_KEY = "display.screen.density"; + private String m_mainLib = null; private Service m_service = null; - private String m_mainLib; private static String m_environmentVariables = null; private static String m_applicationParameters = null; @@ -142,9 +142,9 @@ public class QtServiceDelegate } QtNative.loadQtLibraries(loaderParams.getStringArrayList(NATIVE_LIBRARIES_KEY)); ArrayList<String> libraries = loaderParams.getStringArrayList(BUNDLED_LIBRARIES_KEY); - QtNative.loadBundledLibraries(libraries, QtNativeLibrariesDir.nativeLibrariesDir(m_service)); + String nativeLibsDir = QtNativeLibrariesDir.nativeLibrariesDir(m_service); + QtNative.loadBundledLibraries(libraries, nativeLibsDir); m_mainLib = loaderParams.getString(MAIN_LIBRARY_KEY); - m_environmentVariables = loaderParams.getString(ENVIRONMENT_VARIABLES_KEY); String additionalEnvironmentVariables = "QT_ANDROID_FONTS_MONOSPACE=Droid Sans Mono;Droid Sans;Droid Sans Fallback" + "\tQT_ANDROID_FONTS_SERIF=Droid Serif" @@ -165,7 +165,8 @@ public class QtServiceDelegate else m_applicationParameters = ""; - return true; + m_mainLib = QtNative.loadMainLibrary(m_mainLib, nativeLibsDir); + return m_mainLib != null; } public boolean startApplication() @@ -173,10 +174,7 @@ public class QtServiceDelegate // start application try { String nativeLibraryDir = QtNativeLibrariesDir.nativeLibrariesDir(m_service); - QtNative.startApplication(m_applicationParameters, - m_environmentVariables, - m_mainLib, - nativeLibraryDir); + QtNative.startApplication(m_applicationParameters, m_environmentVariables, m_mainLib); return true; } catch (Exception e) { e.printStackTrace(); diff --git a/src/android/java/res/values-el/strings.xml b/src/android/java/res/values-el/strings.xml index 3cab212f2b..42b2b3b49d 100644 --- a/src/android/java/res/values-el/strings.xml +++ b/src/android/java/res/values-el/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Δεν ήταν δυνατή η εύρεση της υπηρεσίας Ministro. Δεν είναι δυνατή η εκκίνηση της εφαρμογής.</string> <string name="ministro_needed_msg">Η εφαρμογή απαιτεί την υπηρεσία Ministro. Να εγκατασταθεί η υπηρεσία?</string> <string name="fatal_error_msg">Παρουσιάστηκε ένα κρίσιμο σφάλμα και η εφαρμογή δεν μπορεί να συνεχίσει.</string> + <string name="unsupported_android_version">Αυτή η έκδοση του Android δεν υποστηρίζεται.</string> </resources> diff --git a/src/android/java/res/values-es/strings.xml b/src/android/java/res/values-es/strings.xml index cf0b54d0b0..1da33a6444 100644 --- a/src/android/java/res/values-es/strings.xml +++ b/src/android/java/res/values-es/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Servicio Ministro inesistente. Imposible ejecutar la aplicación.</string> <string name="ministro_needed_msg">Esta aplicación requiere el servicio Ministro. Instalarlo?</string> <string name="fatal_error_msg">La aplicación ha causado un error grave y no es posible continuar.</string> + <string name="unsupported_android_version">Esta versión de Android no es compatible.</string> </resources> diff --git a/src/android/java/res/values-et/strings.xml b/src/android/java/res/values-et/strings.xml index d55a3c1471..9620fd2bc8 100644 --- a/src/android/java/res/values-et/strings.xml +++ b/src/android/java/res/values-et/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Ei suuda leida Ministro teenust.\nProgrammi ei saa käivitada.</string> <string name="ministro_needed_msg">See programm vajab Ministro teenust.\nKas soovite paigaldada?</string> <string name="fatal_error_msg">Programmiga juhtus fataalne viga.\nKahjuks ei saa jätkata.</string> + <string name="unsupported_android_version">Seda Androidi versiooni ei toetata.</string> </resources> diff --git a/src/android/java/res/values-fa/strings.xml b/src/android/java/res/values-fa/strings.xml index a8d1b87444..d1ee06118a 100644 --- a/src/android/java/res/values-fa/strings.xml +++ b/src/android/java/res/values-fa/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">سرویس Ministro را پیدا نمیکند. برنامه نمیتواند آغاز شود.</string> <string name="ministro_needed_msg">این نرمافزار به سرویس Ministro احتیاج دارد. آیا دوست دارید آن را نصب کنید؟</string> <string name="fatal_error_msg">خطایی اساسی در برنامهتان رخ داد و اجرای برنامه نمیتواند ادامه یابد.</string> + <string name="unsupported_android_version">این نسخه از Android پشتیبانی نمی شود</string> </resources> diff --git a/src/android/java/res/values-id/strings.xml b/src/android/java/res/values-id/strings.xml index aaa5bda0de..b25f568ee9 100644 --- a/src/android/java/res/values-id/strings.xml +++ b/src/android/java/res/values-id/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Layanan Ministro tidak bisa ditemukan.\nAplikasi tidak bisa dimulai.</string> <string name="ministro_needed_msg">Aplikasi ini membutuhkan layanan Ministro. Apakah Anda ingin menginstalnya?</string> <string name="fatal_error_msg">Aplikasi Anda mengalami kesalahan fatal dan tidak dapat melanjutkan.</string> + <string name="unsupported_android_version">Versi Android ini tidak didukung.</string> </resources> diff --git a/src/android/java/res/values-it/strings.xml b/src/android/java/res/values-it/strings.xml index 4773419c44..9ba5fe2b1c 100644 --- a/src/android/java/res/values-it/strings.xml +++ b/src/android/java/res/values-it/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Servizio Ministro inesistente. Impossibile eseguire \nl\'applicazione.</string> <string name="ministro_needed_msg">Questa applicazione richiede il servizio Ministro.Installarlo?</string> <string name="fatal_error_msg">L\'applicazione ha provocato un errore grave e non puo\' continuare.</string> + <string name="unsupported_android_version">Questa versione di Android non è supportata.</string> </resources> diff --git a/src/android/java/res/values-ja/strings.xml b/src/android/java/res/values-ja/strings.xml index ba1cfda9ec..40da7dce48 100644 --- a/src/android/java/res/values-ja/strings.xml +++ b/src/android/java/res/values-ja/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Ministroサービスが見つかりません。\nアプリケーションが起動できません。</string> <string name="ministro_needed_msg">このアプリケーションにはMinistroサービスが必要です。 インストールしてもよろしいですか?</string> <string name="fatal_error_msg">アプリケーションで致命的なエラーが発生したため続行できません。</string> + <string name="unsupported_android_version">このバージョンのAndroidはサポートされていません。</string> </resources> diff --git a/src/android/java/res/values-ms/strings.xml b/src/android/java/res/values-ms/strings.xml index 6e3952eaec..bd27890eb2 100644 --- a/src/android/java/res/values-ms/strings.xml +++ b/src/android/java/res/values-ms/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Tidak jumpa servis Ministro.\nAplikasi tidak boleh dimulakan.</string> <string name="ministro_needed_msg">Aplikasi ini memerlukan servis Ministro. Adakah anda ingin pasang servis itu?</string> <string name="fatal_error_msg">Aplikasi anda menemui ralat muat dan tidak boleh diteruskan.</string> + <string name="unsupported_android_version">Versi Android ini tidak disokong.</string> </resources> diff --git a/src/android/java/res/values-nb/strings.xml b/src/android/java/res/values-nb/strings.xml index 8a550e99a2..53529b7f52 100644 --- a/src/android/java/res/values-nb/strings.xml +++ b/src/android/java/res/values-nb/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Kan ikke finne tjenesten Ministro. Applikasjonen kan ikke starte.</string> <string name="ministro_needed_msg">Denne applikasjonen krever tjenesten Ministro. Vil du installere denne?</string> <string name="fatal_error_msg">Applikasjonen fikk en kritisk feil og kan ikke fortsette</string> + <string name="unsupported_android_version">Denne versjonen av Android støttes ikke.</string> </resources> diff --git a/src/android/java/res/values-nl/strings.xml b/src/android/java/res/values-nl/strings.xml index 8a45a724ff..7e54587f61 100644 --- a/src/android/java/res/values-nl/strings.xml +++ b/src/android/java/res/values-nl/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">De Ministro service is niet gevonden.\nDe applicatie kan niet starten.</string> <string name="ministro_needed_msg">Deze applicatie maakt gebruik van de Ministro service. Wilt u deze installeren?</string> <string name="fatal_error_msg">Er is een fatale fout in de applicatie opgetreden. De applicatie kan niet verder gaan.</string> + <string name="unsupported_android_version">Deze versie van Android wordt niet ondersteund.</string> </resources> diff --git a/src/android/java/res/values-pl/strings.xml b/src/android/java/res/values-pl/strings.xml index 9fefc92dcd..e7feb01392 100644 --- a/src/android/java/res/values-pl/strings.xml +++ b/src/android/java/res/values-pl/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Usługa Ministro nie została znaleziona.\nAplikacja nie może zostać uruchomiona.</string> <string name="ministro_needed_msg">Aplikacja wymaga usługi Ministro. Czy chcesz ją zainstalować?</string> <string name="fatal_error_msg">Wystąpił błąd krytyczny. Aplikacja zostanie zamknięta.</string> + <string name="unsupported_android_version">Ta wersja Androida nie jest obsługiwana.</string> </resources> diff --git a/src/android/java/res/values-pt-rBR/strings.xml b/src/android/java/res/values-pt-rBR/strings.xml index 67ac3f9f98..4bac77c784 100644 --- a/src/android/java/res/values-pt-rBR/strings.xml +++ b/src/android/java/res/values-pt-rBR/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Não foi possível encontrar o serviço Ministro.\nA aplicação não pode iniciar.</string> <string name="ministro_needed_msg">Essa aplicação requer o serviço Ministro. Gostaria de instalá-lo?</string> <string name="fatal_error_msg">Sua aplicação encontrou um erro fatal e não pode continuar.</string> + <string name="unsupported_android_version">Esta versão do Android não é suportada.</string> </resources> diff --git a/src/android/java/res/values-ro/strings.xml b/src/android/java/res/values-ro/strings.xml index fef52ad3bd..d55c5b5c38 100644 --- a/src/android/java/res/values-ro/strings.xml +++ b/src/android/java/res/values-ro/strings.xml @@ -3,5 +3,5 @@ <string name="ministro_not_found_msg">Serviciul Ministro nu poate fi găsit.\nAplicaţia nu poate porni.</string> <string name="ministro_needed_msg">Această aplicaţie necesită serviciul Ministro.\nDoriţi să-l instalaţi?</string> <string name="fatal_error_msg">Aplicaţia dumneavoastră a întâmpinat o eroare fatală şi nu poate continua.</string> - <string name="unsupported_android_version">Versiune Android nesuportată.</string> + <string name="unsupported_android_version">Această versiune de Android nu este suportată.</string> </resources> diff --git a/src/android/java/res/values-rs/strings.xml b/src/android/java/res/values-rs/strings.xml index 3194ce9022..2a1e8284ce 100644 --- a/src/android/java/res/values-rs/strings.xml +++ b/src/android/java/res/values-rs/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Ministro servise nije pronađen. Aplikacija ne može biti pokrenuta.</string> <string name="ministro_needed_msg">Ova aplikacija zahteva Ministro servis. Želite li da ga instalirate?</string> <string name="fatal_error_msg">Vaša aplikacija je naišla na fatalnu grešku i ne može nastaviti sa radom.</string> + <string name="unsupported_android_version">Ova verzija Android-a nije podržana.</string> </resources> diff --git a/src/android/java/res/values-ru/strings.xml b/src/android/java/res/values-ru/strings.xml index d3cee80f9d..ec853d22f9 100644 --- a/src/android/java/res/values-ru/strings.xml +++ b/src/android/java/res/values-ru/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">Сервис Ministro не найден.\nПриложение нельзя запустить.</string> <string name="ministro_needed_msg">Этому приложению необходим сервис Ministro. Вы хотите его установить?</string> <string name="fatal_error_msg">Ваше приложение столкнулось с фатальной ошибкой и не может более работать.</string> + <string name="unsupported_android_version">Эта версия Android не поддерживается.</string> </resources> diff --git a/src/android/java/res/values-zh-rCN/strings.xml b/src/android/java/res/values-zh-rCN/strings.xml index 2eb1269880..58cdd89946 100644 --- a/src/android/java/res/values-zh-rCN/strings.xml +++ b/src/android/java/res/values-zh-rCN/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">无法找到Ministro服务。\n应用程序无法启动。</string> <string name="ministro_needed_msg">此应用程序需要Ministro服务。您想安装它吗?</string> <string name="fatal_error_msg">您的应用程序遇到一个致命错误导致它无法继续。</string> + <string name="unsupported_android_version">这个版本的安卓系统不被支持。</string> </resources> diff --git a/src/android/java/res/values-zh-rTW/strings.xml b/src/android/java/res/values-zh-rTW/strings.xml index f6e68efa52..81d2bebdee 100644 --- a/src/android/java/res/values-zh-rTW/strings.xml +++ b/src/android/java/res/values-zh-rTW/strings.xml @@ -3,4 +3,5 @@ <string name="ministro_not_found_msg">無法找到Ministro服務。\n應用程序無法啟動。</string> <string name="ministro_needed_msg">此應用程序需要Ministro服務。您想安裝它嗎?</string> <string name="fatal_error_msg">您的應用程序遇到一個致命錯誤導致它無法繼續。</string> + <string name="unsupported_android_version">這個版本的安卓系統不被支持。</string> </resources> diff --git a/src/android/java/res/values/strings.xml b/src/android/java/res/values/strings.xml index 95b3385924..0110948dcf 100644 --- a/src/android/java/res/values/strings.xml +++ b/src/android/java/res/values/strings.xml @@ -4,5 +4,5 @@ <string name="ministro_not_found_msg">Can\'t find Ministro service.\nThe application can\'t start.</string> <string name="ministro_needed_msg">This application requires Ministro service. Would you like to install it?</string> <string name="fatal_error_msg">Your application encountered a fatal error and cannot continue.</string> - <string name="unsupported_android_version">Unsupported Android version.</string> + <string name="unsupported_android_version">This version of Android is not supported.</string> </resources> |