是这样的,一个版本愉快的发布以后,线上观察到了一个crash:
继续看堆栈:
我们找到了真正出问题的堆栈。 结合新版本改动的代码,我们迅速定位了可能出现问题的代码:
<**************
android:id="@+id/tvDepartTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tvFrom"
android:layout_marginTop="2dp"
android:ellipsize="end"
android:gravity="start"
android:maxLines="2"
android:textColor="@color/color_train_main_text"
android:textSize="@dimen/dimen_18dp"
tools:text="上海上海上海上海上海上海"
//下面四行是新增代码,也是出问题的地方
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="12sp"
app:autoSizeMaxTextSize="18dp"
app:autoSizeStepGranularity="2sp"
/>
那么如何复现问题呢,不清楚,如何修复呢,也不是很清楚。 所以还是必须找到出现问题的原因。
尝试搜索Maximum auto-size text size (72.0px) is less or equal to minimum auto-size text size (72.0px),百度无法给我答案,google上找了一个stackoverflow,发现了一些端倪:https://stackoverflow.com/questions/50500355/autotextview-max-size-issue
找到了灵感,和用户手动设置了系统字体有关,我们代码设置了最大字体号,等于或者小于系统设置的最小字体号了。 于是我将该三星手机字体调至最大,果然成功复现。
我直呼坑爹。
然后我继续思考,那么一定是设置到了某个级别的字体后才会出现问题,于是验证了一下,果然,结果如下图。
解决方案: 全部使用dp, 不可以使用sp; app:autoSizeMaxTextSize设置为一个较大的值,100dp
因为sp设置字体,字体大小会根据系统设置字体大小而改变。
参考:https://blog.csdn.net/donkor_/article/details/77680042