diff --git a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java index 75069e0b2..b08ebc270 100644 --- a/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java +++ b/jadx-gui/src/main/java/jadx/gui/JadxWrapper.java @@ -26,11 +26,12 @@ public class JadxWrapper { private final JadxSettings settings; private JadxDecompiler decompiler; - private JadxProject project; + private @Nullable JadxProject project; private List openPaths = Collections.emptyList(); public JadxWrapper(JadxSettings settings) { this.settings = settings; + this.decompiler = new JadxDecompiler(settings.toJadxArgs()); } public void openFile(List paths) { @@ -39,8 +40,9 @@ public class JadxWrapper { try { JadxArgs jadxArgs = settings.toJadxArgs(); jadxArgs.setInputFiles(toFiles(paths)); - jadxArgs.setCodeData(project.getCodeData()); - + if (project != null) { + jadxArgs.setCodeData(project.getCodeData()); + } this.decompiler = new JadxDecompiler(jadxArgs); this.decompiler.load(); } catch (Exception e) { @@ -50,12 +52,10 @@ public class JadxWrapper { } public void close() { - if (decompiler != null) { - try { - decompiler.close(); - } catch (Exception e) { - LOG.error("jadx decompiler close error", e); - } + try { + decompiler.close(); + } catch (Exception e) { + LOG.error("jadx decompiler close error", e); } this.openPaths = Collections.emptyList(); } diff --git a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginManager.java b/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginManager.java index 785ab4409..81953bde6 100644 --- a/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginManager.java +++ b/jadx-plugins/jadx-plugins-api/src/main/java/jadx/api/plugins/JadxPluginManager.java @@ -38,6 +38,7 @@ public class JadxPluginManager { } public void load() { + allPlugins.clear(); ServiceLoader jadxPlugins = ServiceLoader.load(JadxPlugin.class); for (JadxPlugin plugin : jadxPlugins) { addPlugin(plugin);