From c4e56b045c9f53c84012043d57a52572236e175b Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Fri, 30 Oct 2020 15:03:21 +0700 Subject: [PATCH] [Bug fix] JRE exit code -1 in non-first time launch --- .../java/net/kdt/pojavlaunch/InstallModActivity.java | 3 ++- app/src/main/java/net/kdt/pojavlaunch/JREUtils.java | 10 ++++++++++ .../java/net/kdt/pojavlaunch/PojavLoginActivity.java | 8 +------- app/src/main/java/net/kdt/pojavlaunch/Tools.java | 1 + 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/net/kdt/pojavlaunch/InstallModActivity.java b/app/src/main/java/net/kdt/pojavlaunch/InstallModActivity.java index 2e2a01616..6c34118f5 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/InstallModActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/InstallModActivity.java @@ -110,8 +110,9 @@ public class InstallModActivity extends LoggableActivity private void launchJavaRuntime(File modFile, String javaArgs) { try { + JREUtils.relocateLibPath(); + List javaArgList = new ArrayList(); - javaArgList.add(Tools.homeJreDir + "/bin/java"); Tools.getJavaArgs(this, javaArgList); diff --git a/app/src/main/java/net/kdt/pojavlaunch/JREUtils.java b/app/src/main/java/net/kdt/pojavlaunch/JREUtils.java index e0819d357..95bd04e35 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/JREUtils.java +++ b/app/src/main/java/net/kdt/pojavlaunch/JREUtils.java @@ -119,6 +119,16 @@ public class JREUtils Log.i("jrelog-logcat","Logcat thread started"); } + public static void relocateLibPath() { + for (String arch : Tools.currentArch.split("/")) { + File f = new File(Tools.homeJreDir, "lib/" + arch); + if (f.exists() && f.isDirectory()) { + Tools.homeJreLib = "lib/" + arch; + break; + } + } + } + public static void setJavaEnvironment(Context ctx, int launchType) throws Throwable { nativeLibDir = ctx.getApplicationInfo().nativeLibraryDir; String libName = Tools.currentArch.contains("64") ? "lib64" : "lib"; diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index cbcb124ac..463dd1b54 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -289,13 +289,7 @@ public class PojavLoginActivity extends AppCompatActivity setPref(PREF_IS_INSTALLED_JAVARUNTIME, true); } - for (String arch : Tools.currentArch.split("/")) { - File f = new File(Tools.homeJreDir, "lib/" + arch); - if (f.exists() && f.isDirectory()) { - Tools.homeJreLib = "lib/" + arch; - break; - } - } + JREUtils.relocateLibPath(); File ftIn = new File(Tools.homeJreDir, Tools.homeJreLib + "/libfreetype.so.6"); File ftOut = new File(Tools.homeJreDir, Tools.homeJreLib + "/libfreetype.so"); diff --git a/app/src/main/java/net/kdt/pojavlaunch/Tools.java b/app/src/main/java/net/kdt/pojavlaunch/Tools.java index 804e91814..609f41621 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -75,6 +75,7 @@ public final class Tools public static ShellProcessOperation mLaunchShell; private static int exitCode = 0; public static void launchMinecraft(final LoggableActivity ctx, MCProfile.Builder profile, JMinecraftVersionList.Version versionInfo) throws Throwable { + JREUtils.relocateLibPath(); String[] launchArgs = getMinecraftArgs(profile, versionInfo); List javaArgList = new ArrayList();