我已将我们的应用程序升级到 Dexguard 5.3.28(最新版本),我们正面临与字体相关的问题。我知道新版本的 dexguard 混淆了资产,我认为这可能是问题所在。对于旧版本,如 5.0.34,我们没有任何问题。
我们将 otf 字体存储在 assets/fonts/ 目录中。并使用自定义 TextView 设置字体: xmlns:custom="http://schemas.android.com/apk/res/com.XXXX.XXXX.XXXX.XXX"
<com.XXXX.XXXX.XXXX.XXX.CustomTextView
android:id="@+id/custom_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@android:color/white"
android:textSize="20sp"
custom:font="roman" />
设置字体效果很好,但更改所有 CustomTextViews 不是一种选择。我尝试使用-keepdirectories、-keep CusomTextView,但没有结果。
更新: 出于某种原因,我认为 attr.xml 文件被混淆了,这里出了点问题。
<attr name="font">
<enum name="light" value="1"/>
<enum name="roman" value="2"/>
</attr>
<declare-styleable name="com.XXXX.XXXX.XXXX.XXX.CustomButton">
<attr name="theme">
<enum name="gray" value="1"/>
<enum name="light_gray" value="2"/>
<enum name="pinger_blue" value="3"/>
</attr>
<attr name="font"/>
</declare-styleable>
<declare-styleable name="com.XXXX.XXXX.XXXX.XXX.CustomTextView">
<attr name="font"/>
</declare-styleable>
<declare-styleable name="CustomEllipsizedTextView">
<attr name="ellipsizeAtLine" format="integer"/>
</declare-styleable>
有什么方法可以不混淆 attr.xml 吗?或任何其他建议?