diff --git a/src/main/java/com/reandroid/lib/apk/StringPoolBuilder.java b/src/main/java/com/reandroid/lib/apk/StringPoolBuilder.java index db08600..7785732 100644 --- a/src/main/java/com/reandroid/lib/apk/StringPoolBuilder.java +++ b/src/main/java/com/reandroid/lib/apk/StringPoolBuilder.java @@ -95,7 +95,7 @@ public class StringPoolBuilder { } if(jsonObject.has(ApkUtil.NAME_value_type)){ if(ValueType.STRING.name().equals(jsonObject.getString(ApkUtil.NAME_value_type))){ - String data= jsonObject.getString(ApkUtil.NAME_data); + String data= jsonObject.optString(ApkUtil.NAME_data, ""); addTableString(data); } return; diff --git a/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlAttribute.java b/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlAttribute.java index dabbfbd..3443125 100755 --- a/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlAttribute.java +++ b/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlAttribute.java @@ -435,7 +435,7 @@ import java.util.Set; } ValueType valueType=ValueType.fromName(json.getString(NAME_value_type)); if(valueType==ValueType.STRING){ - setValueAsString(json.getString(NAME_data)); + setValueAsString(json.optString(NAME_data, "")); }else if(valueType==ValueType.INT_BOOLEAN){ setValueAsBoolean(json.getBoolean(NAME_data)); }else { diff --git a/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlBlock.java b/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlBlock.java index 5b05861..9c20645 100755 --- a/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlBlock.java +++ b/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlBlock.java @@ -288,7 +288,7 @@ package com.reandroid.lib.arsc.chunk.xml; results.add(attr.getString(ResXmlAttribute.NAME_name)); ValueType valueType=ValueType.fromName(attr.getString(ResXmlAttribute.NAME_value_type)); if(valueType==ValueType.STRING){ - results.add(attr.getString(ResXmlAttribute.NAME_data)); + results.add(attr.optString(ResXmlAttribute.NAME_data)); } } } diff --git a/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlElement.java b/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlElement.java index 6f6f0dd..d1e2165 100755 --- a/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlElement.java +++ b/src/main/java/com/reandroid/lib/arsc/chunk/xml/ResXmlElement.java @@ -761,7 +761,7 @@ import java.util.*; start.setComment(json.optString(NAME_comment, null)); String text= json.optString(NAME_text, null); if(text!=null){ - setResXmlText(text); + addResXmlText(text); } String uri = json.optString(NAME_namespace_uri, null); if(uri!=null){ diff --git a/src/main/java/com/reandroid/lib/arsc/value/ResValueBagItem.java b/src/main/java/com/reandroid/lib/arsc/value/ResValueBagItem.java index c7d88b5..7c4325a 100755 --- a/src/main/java/com/reandroid/lib/arsc/value/ResValueBagItem.java +++ b/src/main/java/com/reandroid/lib/arsc/value/ResValueBagItem.java @@ -204,7 +204,7 @@ public class ResValueBagItem extends BaseResValueItem{ setType(valueType); setId(json.getInt(NAME_id)); if(valueType==ValueType.STRING){ - setValueAsString(json.getString(NAME_data)); + setValueAsString(json.optString(NAME_data, "")); }else if(valueType==ValueType.INT_BOOLEAN){ setValueAsBoolean(json.getBoolean(NAME_data)); }else { diff --git a/src/main/java/com/reandroid/lib/arsc/value/ResValueInt.java b/src/main/java/com/reandroid/lib/arsc/value/ResValueInt.java index dee4d44..616e7b2 100755 --- a/src/main/java/com/reandroid/lib/arsc/value/ResValueInt.java +++ b/src/main/java/com/reandroid/lib/arsc/value/ResValueInt.java @@ -127,7 +127,7 @@ public class ResValueInt extends BaseResValueItem { public void fromJson(JSONObject json) { ValueType valueType=ValueType.fromName(json.getString(NAME_value_type)); if(valueType==ValueType.STRING){ - setValueAsString(json.getString(NAME_data)); + setValueAsString(json.optString(NAME_data, "")); }else if(valueType==ValueType.INT_BOOLEAN){ setValueAsBoolean(json.getBoolean(NAME_data)); }else {