我正在尝试在工具栏中选择选取框标题,但如果我在启用混淆器的情况下构建它,则选取框不起作用。
Field f = toolbar.getClass().getDeclaredField("mTitleTextView");
f.setAccessible(true);
TextView titleTextView = (TextView) f.get(toolbar);
titleTextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
titleTextView.setMarqueeRepeatLimit(-1);
titleTextView.setSelected(true);
Seem like "mTitleTextView" is obfuscated by proguard.
java.lang.NoSuchFieldException: mTitleTextView
at java.lang.Class.getDeclaredField(Class.java:631)
但是它不起作用,知道吗?
最佳答案
您可以使用以下语法指示混淆器不接触私有(private)字段:
-keepclassmembers class android.widget.Toolbar {
private android.widget.TextView mTitleTextView;
}
对于来自支持库的工具栏:
-keepclassmembers class android.support.v7.widget.Toolbar {
private android.widget.TextView mTitleTextView;
}
参见 this问题了解更多详情。
关于java - 使用混淆器时选取框工具栏标题不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47579206/