【发布时间】:2020-08-10 16:28:40
【问题描述】:
我正在尝试在 HUAWEI TIT_AL00 设备中的应用程序中调试 ANR。执行操作后,设备会收到 ANR,而其他设备工作正常。此设备不显示我的任何日志。在搜索了这个之后,我发现了这个resource。现在,我使用android.utils.Log.wtf() 来获取日志。根据我的应用程序流程,一切运行正常,但在运行代码后更改了我的 UI,它获得了 ANR,而 LogCat 中没有显示任何内容。有什么办法让我知道为什么设备会出现 ANR?此设备的操作系统是棒棒糖。
更新
我发现我使用的是自定义文本视图,
public class ScalableTextView extends TextView{
float defaultTextSize = 0.0f;
public ScalableTextView(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
setSingleLine();
setEllipsize(TextUtils.TruncateAt.END);
defaultTextSize = getTextSize();
}
public ScalableTextView(Context context, AttributeSet attrs){
super(context, attrs);
setSingleLine();
setEllipsize(TextUtils.TruncateAt.END);
defaultTextSize = getTextSize();
}
public ScalableTextView(Context context){
super(context);
setSingleLine();
setEllipsize(TextUtils.TruncateAt.END);
defaultTextSize = getTextSize();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
setTextSize(TypedValue.COMPLEX_UNIT_PX, defaultTextSize);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
final Layout layout = getLayout();
if (layout != null){
final int lineCount = layout.getLineCount();
if (lineCount > 0){
int ellipsisCount = layout.getEllipsisCount(lineCount - 1);
while (ellipsisCount > 0){
final float textSize = getTextSize();
// textSize is already expressed in pixels
setTextSize(TypedValue.COMPLEX_UNIT_PX, (textSize - 1));
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
ellipsisCount = layout.getEllipsisCount(lineCount - 1);
}
}
}
}
}
我在这个文本视图中设置了“™”,为此我得到了 ANR。但仍然不确定为什么 LogCat 没有显示这一点以及异常究竟是什么。
【问题讨论】:
标签: android logging android-anr-dialog huawei-mobile-services