如何避免IllegalStateException:旧应用程序中的ActionBarContextView

时间:2013-11-13 23:00:23

标签: android android-actionbar illegalstateexception android-version

我们有一个已经工作多年的应用程序。所以它没有使用所有最新和最好的功能。

我们发现在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));
  }

任何想法在哪里寻找或改变什么?

0 个答案:

没有答案