From 135272397d583546cdee452bce0dd983b1d5a760 Mon Sep 17 00:00:00 2001 From: jayd Date: Sun, 10 Feb 2019 20:57:31 +0700 Subject: [PATCH] Fix loadLibraries() failing on 64bit arch --- .../main/java/org/kivy/android/PythonService.java | 3 ++- .../src/main/java/org/kivy/android/PythonUtil.java | 13 ++++--------- .../main/java/org/kivy/android/PythonActivity.java | 3 ++- .../src/main/java/org/kivy/android/PythonUtil.java | 13 ++++--------- .../main/java/org/kivy/android/PythonActivity.java | 3 ++- .../main/java/org/kivy/android/PythonActivity.java | 3 ++- 6 files changed, 16 insertions(+), 22 deletions(-) diff --git a/pythonforandroid/bootstraps/common/build/src/main/java/org/kivy/android/PythonService.java b/pythonforandroid/bootstraps/common/build/src/main/java/org/kivy/android/PythonService.java index 1f4eb83594..4f20fb7808 100644 --- a/pythonforandroid/bootstraps/common/build/src/main/java/org/kivy/android/PythonService.java +++ b/pythonforandroid/bootstraps/common/build/src/main/java/org/kivy/android/PythonService.java @@ -144,7 +144,8 @@ public void onTaskRemoved(Intent rootIntent) { public void run(){ String app_root = getFilesDir().getAbsolutePath() + "/app"; File app_root_file = new File(app_root); - PythonUtil.loadLibraries(app_root_file); + PythonUtil.loadLibraries(app_root_file, + new File(getApplicationInfo().nativeLibraryDir)); this.mService = this; nativeStart( androidPrivate, androidArgument, diff --git a/pythonforandroid/bootstraps/common/build/src/main/java/org/kivy/android/PythonUtil.java b/pythonforandroid/bootstraps/common/build/src/main/java/org/kivy/android/PythonUtil.java index 37df5f9265..1f2673850d 100644 --- a/pythonforandroid/bootstraps/common/build/src/main/java/org/kivy/android/PythonUtil.java +++ b/pythonforandroid/bootstraps/common/build/src/main/java/org/kivy/android/PythonUtil.java @@ -30,11 +30,7 @@ protected static void addLibraryIfExists(ArrayList libsList, String patt } } - protected static ArrayList getLibraries(File filesDir) { - - String libsDirPath = filesDir.getParentFile().getParentFile().getAbsolutePath() + "/lib/"; - File libsDir = new File(libsDirPath); - + protected static ArrayList getLibraries(File libsDir) { ArrayList libsList = new ArrayList(); addLibraryIfExists(libsList, "crystax", libsDir); addLibraryIfExists(libsList, "sqlite3", libsDir); @@ -49,14 +45,13 @@ protected static ArrayList getLibraries(File filesDir) { return libsList; } - public static void loadLibraries(File filesDir) { - + public static void loadLibraries(File filesDir, File libsDir) { String filesDirPath = filesDir.getAbsolutePath(); boolean foundPython = false; - for (String lib : getLibraries(filesDir)) { + for (String lib : getLibraries(libsDir)) { Log.v(TAG, "Loading library: " + lib); - try { + try { System.loadLibrary(lib); if (lib.startsWith("python")) { foundPython = true; diff --git a/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonActivity.java b/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonActivity.java index 327ae18f4f..8f5080dfa8 100644 --- a/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonActivity.java +++ b/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonActivity.java @@ -83,7 +83,8 @@ protected void onCreate(Bundle savedInstanceState) { public void loadLibraries() { String app_root = new String(getAppRoot()); File app_root_file = new File(app_root); - PythonUtil.loadLibraries(app_root_file); + PythonUtil.loadLibraries(app_root_file, + new File(getApplicationInfo().nativeLibraryDir)); } public void recursiveDelete(File f) { diff --git a/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonUtil.java b/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonUtil.java index 3b4429c9a9..b6a9200f4f 100644 --- a/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonUtil.java +++ b/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonUtil.java @@ -29,11 +29,7 @@ protected static void addLibraryIfExists(ArrayList libsList, String patt } } - protected static ArrayList getLibraries(File filesDir) { - - String libsDirPath = filesDir.getParentFile().getParentFile().getAbsolutePath() + "/lib/"; - File libsDir = new File(libsDirPath); - + protected static ArrayList getLibraries(File libsDir) { ArrayList libsList = new ArrayList(); addLibraryIfExists(libsList, "crystax", libsDir); addLibraryIfExists(libsList, "sqlite3", libsDir); @@ -52,14 +48,13 @@ protected static ArrayList getLibraries(File filesDir) { return libsList; } - public static void loadLibraries(File filesDir) { - + public static void loadLibraries(File filesDir, File libsDir) { String filesDirPath = filesDir.getAbsolutePath(); boolean foundPython = false; - for (String lib : getLibraries(filesDir)) { + for (String lib : getLibraries(libsDir)) { Log.v(TAG, "Loading library: " + lib); - try { + try { System.loadLibrary(lib); if (lib.startsWith("python")) { foundPython = true; diff --git a/pythonforandroid/bootstraps/service_only/build/src/main/java/org/kivy/android/PythonActivity.java b/pythonforandroid/bootstraps/service_only/build/src/main/java/org/kivy/android/PythonActivity.java index 3390806041..8e45967616 100644 --- a/pythonforandroid/bootstraps/service_only/build/src/main/java/org/kivy/android/PythonActivity.java +++ b/pythonforandroid/bootstraps/service_only/build/src/main/java/org/kivy/android/PythonActivity.java @@ -201,7 +201,8 @@ public void onDestroy() { public void loadLibraries() { String app_root = new String(getAppRoot()); File app_root_file = new File(app_root); - PythonUtil.loadLibraries(app_root_file); + PythonUtil.loadLibraries(app_root_file, + new File(getApplicationInfo().nativeLibraryDir)); } public void recursiveDelete(File f) { diff --git a/pythonforandroid/bootstraps/webview/build/src/main/java/org/kivy/android/PythonActivity.java b/pythonforandroid/bootstraps/webview/build/src/main/java/org/kivy/android/PythonActivity.java index 1a37bc672f..effa54cf36 100644 --- a/pythonforandroid/bootstraps/webview/build/src/main/java/org/kivy/android/PythonActivity.java +++ b/pythonforandroid/bootstraps/webview/build/src/main/java/org/kivy/android/PythonActivity.java @@ -232,7 +232,8 @@ public void onDestroy() { public void loadLibraries() { String app_root = new String(getAppRoot()); File app_root_file = new File(app_root); - PythonUtil.loadLibraries(app_root_file); + PythonUtil.loadLibraries(app_root_file, + new File(getApplicationInfo().nativeLibraryDir)); } public void recursiveDelete(File f) {