diff --git a/jadx-core/src/main/java/jadx/api/JadxDecompiler.java b/jadx-core/src/main/java/jadx/api/JadxDecompiler.java index dda47b6ef..5acaa697c 100644 --- a/jadx-core/src/main/java/jadx/api/JadxDecompiler.java +++ b/jadx-core/src/main/java/jadx/api/JadxDecompiler.java @@ -538,7 +538,11 @@ public final class JadxDecompiler implements Closeable { } if (obj instanceof VariableNode) { VariableNode varNode = (VariableNode) obj; - return new JavaVariable(getJavaClassByNode(varNode.getClassNode().getTopParentClass()), varNode); + JavaClass javaCls = getJavaClassByNode(varNode.getClassNode().getTopParentClass()); + if (javaCls == null) { + return null; + } + return new JavaVariable(javaCls, varNode); } throw new JadxRuntimeException("Unexpected node type: " + obj); } diff --git a/jadx-core/src/main/java/jadx/api/JavaVariable.java b/jadx-core/src/main/java/jadx/api/JavaVariable.java index db99ed735..1b553f04a 100644 --- a/jadx-core/src/main/java/jadx/api/JavaVariable.java +++ b/jadx-core/src/main/java/jadx/api/JavaVariable.java @@ -2,16 +2,17 @@ package jadx.api; import java.util.Collections; import java.util.List; +import java.util.Objects; import jadx.core.dex.nodes.VariableNode; public class JavaVariable implements JavaNode { - JavaClass cls; - VariableNode node; + private final JavaClass cls; + private final VariableNode node; public JavaVariable(JavaClass cls, VariableNode node) { - this.cls = cls; - this.node = node; + this.cls = Objects.requireNonNull(cls); + this.node = Objects.requireNonNull(node); } public VariableNode getVariableNode() {