diff options
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtNative.java | 32 | ||||
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtNativeLibrariesDir.java | 1 |
2 files changed, 31 insertions, 2 deletions
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 76dffbd213..92a7ec43e3 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -49,6 +49,7 @@ import android.app.Service; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.content.pm.ActivityInfo; import android.net.Uri; import android.os.Handler; import android.os.Looper; @@ -188,7 +189,21 @@ public class QtNative for (String libName : libraries) { try { - File f = new File(nativeLibraryDir+"lib"+libName+".so"); + String libNameTemplate = "lib" + libName + ".so"; + File f = new File(nativeLibraryDir + libNameTemplate); + if (!f.exists()) { + Log.i(QtTAG, "Can't find '" + f.getAbsolutePath()); + 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 + libNameTemplate); + } catch (Exception e) { + + } + } if (f.exists()) System.load(f.getAbsolutePath()); else @@ -281,7 +296,20 @@ public class QtNative String mainLibrary, String nativeLibraryDir) throws Exception { - File f = new File(nativeLibraryDir + "lib" + mainLibrary + ".so"); + 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 + "'"); diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNativeLibrariesDir.java b/src/android/jar/src/org/qtproject/qt5/android/QtNativeLibrariesDir.java index ff3bf19383..4a732f7f7f 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNativeLibrariesDir.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNativeLibrariesDir.java @@ -45,6 +45,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager.NameNotFoundException; public class QtNativeLibrariesDir { + public static final String systemLibrariesDir = "/system/lib/"; public static String nativeLibrariesDir(Context context) { String m_nativeLibraryDir = null; |