diff --git a/src/main/java/com/reandroid/apk/ResourceIds.java b/src/main/java/com/reandroid/apk/ResourceIds.java
index d481d04..7ebcc87 100644
--- a/src/main/java/com/reandroid/apk/ResourceIds.java
+++ b/src/main/java/com/reandroid/apk/ResourceIds.java
@@ -742,9 +742,15 @@ import java.util.*;
writer.write("");
}
@Override
diff --git a/src/main/java/com/reandroid/arsc/chunk/PackageBlock.java b/src/main/java/com/reandroid/arsc/chunk/PackageBlock.java
index 0ed69f5..c23028b 100755
--- a/src/main/java/com/reandroid/arsc/chunk/PackageBlock.java
+++ b/src/main/java/com/reandroid/arsc/chunk/PackageBlock.java
@@ -241,7 +241,7 @@ public class PackageBlock extends Chunk
private void createEntryGroupMap(Map map){
map.clear();
for(SpecTypePair specTypePair:listAllSpecTypePair()){
- map.putAll(specTypePair.createEntryGroups());
+ map.putAll(specTypePair.createEntryGroups(true));
}
}
public Map getEntriesGroupMap(){
diff --git a/src/main/java/com/reandroid/arsc/container/SpecTypePair.java b/src/main/java/com/reandroid/arsc/container/SpecTypePair.java
index d23ed02..05d1ada 100755
--- a/src/main/java/com/reandroid/arsc/container/SpecTypePair.java
+++ b/src/main/java/com/reandroid/arsc/container/SpecTypePair.java
@@ -68,10 +68,13 @@ public class SpecTypePair extends BlockContainer
}
}
public Map createEntryGroups(){
+ return createEntryGroups(false);
+ }
+ public Map createEntryGroups(boolean skipNullEntries){
Map map = new HashMap<>();
for(TypeBlock typeBlock:listTypeBlocks()){
EntryArray entryArray = typeBlock.getEntryArray();
- for(Entry entry:entryArray.listItems()){
+ for(Entry entry:entryArray.listItems(skipNullEntries)){
if(entry==null){
continue;
}
diff --git a/src/main/java/com/reandroid/arsc/value/ValueItem.java b/src/main/java/com/reandroid/arsc/value/ValueItem.java
index 1a1cc26..5dfdf32 100755
--- a/src/main/java/com/reandroid/arsc/value/ValueItem.java
+++ b/src/main/java/com/reandroid/arsc/value/ValueItem.java
@@ -42,7 +42,9 @@ import java.util.Objects;
}
void linkTableStrings(TableStringPool tableStringPool){
- linkStringReference(tableStringPool);
+ if(getValueType() == ValueType.STRING){
+ linkStringReference(tableStringPool);
+ }
}
public void onRemoved(){
unLinkStringReference();