Dexguard用法会混淆Attributeset中的Android架构

时间:2016-01-25 15:39:51

标签: android xml dexguard

我有一个Android项目,我需要在TextView创建时提取android:textStyle值。我通过在AttributeSet上调用以下内容来完成此操作:

attrs.getAttributeIntValue("http://schemas.android.com/apk/res/android", "textStyle", 0);

这给了我正确的textStyle值,在xml中设置,而我没有使用Dexguard。只要我对代码进行模糊处理,这段代码就会一直返回默认值0。

我还没有找到具体的解释或推理,这可以解释为什么会发生这种情况。所以任何和所有合理的答案将不胜感激。

1 个答案:

答案 0 :(得分:1)

原来Dexguard会混淆XML属性名称,从而引用' textStyle'没有工作。

通过在规则集中添加以下内容,这已成为问题

-keepresourcexmlattributenames **/textStyle

这也可以用wilcards(**)替换为正确的XML层次结构路径。