4

我们有一个已经运行多年的应用程序。所以它不会使用所有最新和最强大的功能。

我们发现,在当前版本的 Android 上,如果 EditText 控件中有文本并且您长按它 - 应用程序崩溃并出现以下情况:

11-13 14:26:20.720: E/AndroidRuntime(1253): FATAL EXCEPTION: main
11-13 14:26:20.720: E/AndroidRuntime(1253): java.lang.IllegalStateException: ActionBarContextView can only be used with android:layout_width="match_parent" (or fill_parent)
11-13 14:26:20.720: E/AndroidRuntime(1253):     at com.android.internal.widget.ActionBarContextView.onMeasure(ActionBarContextView.java:325)
11-13 14:26:20.720: E/AndroidRuntime(1253):     at android.view.View.measure(View.java:12603)
11-13 14:26:20.720: E/AndroidRuntime(1253):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4677)
11-13 14:26:20.720: E/AndroidRuntime(1253):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
11-13 14:26:20.720: E/AndroidRuntime(1253):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)

我知道我们在 xml 或 java 文件中的任何地方都没有对 ActionBarContextView 的引用,我们也没有使用任何主题。这些 EditText 控件位于活动中,而不是对话框中。

我们确实有一个自定义布局作为我们的根布局,如果它是方法,崩溃堆栈跟踪最终会回到一个:

  @Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    final int count = getChildCount();

    for (int i = 0; i < count; i++) {
      final View child = getChildAt(i);
      measureChild(child, widthMeasureSpec, heightMeasureSpec);
    }
    setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec));
  }

任何想法在哪里看,或改变什么?

4

0 回答 0