mirror of
https://github.com/revanced/Apktool.git
synced 2024-12-05 02:22:55 +01:00
fix: prevent NPE during decode app with no matching resId for resource
This commit is contained in:
parent
cd7405d31b
commit
b896b4491a
@ -21,6 +21,7 @@ import android.util.TypedValue;
|
||||
import brut.androlib.AndrolibException;
|
||||
import brut.androlib.res.data.ResID;
|
||||
import brut.androlib.res.xml.ResXmlEncoders;
|
||||
import brut.common.BrutException;
|
||||
import brut.util.ExtDataInput;
|
||||
import com.google.common.io.LittleEndianDataInputStream;
|
||||
import java.io.DataInput;
|
||||
@ -339,16 +340,16 @@ public class AXmlResourceParser implements XmlResourceParser {
|
||||
|
||||
// some attributes will return "", we must rely on the resource_id and refer to the frameworks
|
||||
// to match the resource id to the name. ex: 0x101021C = versionName
|
||||
if (value.length() != 0 && !android_ns.equals(getAttributeNamespace(index))) {
|
||||
return value;
|
||||
} else {
|
||||
if (value.length() == 0 || android_ns.equals(getAttributeNamespace(index))) {
|
||||
try {
|
||||
int resourceId = getAttributeNameResource(index);
|
||||
if (resourceId != 0) {
|
||||
value = mAttrDecoder.decodeManifestAttr(getAttributeNameResource(index));
|
||||
} catch (AndrolibException e) {
|
||||
}
|
||||
} catch (AndrolibException | NullPointerException e) { }
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAttributeNameResource(int index) {
|
||||
|
Loading…
Reference in New Issue
Block a user