Xamarin.Android:加载支持时发生 IllegalArgumentException。v7.toolbar
Xamarin.Android: IllegalArgumentException while loading supprt.v7.toolbar
我在加载支持时遇到 IllegalArgumentException。v7.toolbar 在编辑 xaml 个文件之一后。
这是编译器告诉我的
Creating class loader with 0 projects
Creating LibraryClassLoader in shadow copy path C:\Users\konno\AppData\Local\Temp\AndroidDesignerJars180644833948983183
Trying to load class android.support.v7.widget.Toolbar
mono.android.DesignerException: java.lang.IllegalArgumentException
at mono.android.DesignerException.fromThrowable(DesignerException.java:46)
at mono.android.DesignerSession.checkRenderResultForError(DesignerSession.java:187)
at mono.android.DesignerSession.load(DesignerSession.java:239)
at mono.android.DesignerSession.processMessage(DesignerSession.java:704)
at mono.android.MessageListener.executeMessage(MessageListener.java:88)
at mono.android.MessageListener$Runner.run(MessageListener.java:44)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: column indices (start + span) mustn't exceed the column count.
at android.widget.GridLayout.handleInvalidParams(GridLayout.java:823)
at android.widget.GridLayout.checkLayoutParams(GridLayout.java:837)
at android.widget.GridLayout.checkLayoutParams(GridLayout.java:853)
at android.view.ViewGroup.addViewInner(ViewGroup.java:4462)
at android.view.ViewGroup.addView(ViewGroup.java:4295)
at android.view.ViewGroup.addView(ViewGroup.java:4267)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:862)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368)
at mono.android.DesignerSession.load(DesignerSession.java:233)
... 4 more
我对工具栏所做的唯一一件事就是更改它所在的行。然后在设计器中重新打开后,我得到了上面的错误。我尝试删除我添加到工具栏的代码行,但错误仍然存在。
XAML Activity
的代码
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="3"
android:rowCount="6">
<!--This is for the Toolbar Only-->
<android.support.v7.widget.Toolbar
android:id="@+id/RestaurantTotalToolbar"
android:minHeight="?android:attr/actionBarSize"
android:layout_row="0"
android:background="@color/colorPrimary"
android:theme="@style/ToolbarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!--This is for the Toolbar Only-->
<!--What is the Ticket Total? -->
<TextView
android:text="@string/questTicketTotal"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/questTicketTextView"
android:layout_row="1"
android:layout_column="0"
android:layout_columnSpan="3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:gravity="center"
android:layout_rowWeight="10" />
<EditText
android:hint="[=13=].00"
android:id="@+id/ticketTotal"
android:layout_row="2"
android:layout_column="0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:height="50dp"
android:layout_columnSpan="3"
android:layout_rowWeight="1"
android:translationY="-60dp"
android:maxLength="5"
android:inputType="numberDecimal"
android:maxLines="1" />
<!--What is the name of the Restaurant? -->
<TextView
android:text="@string/questRestaurantName"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/restaurantNameTextView"
android:layout_row="3"
android:layout_column="0"
android:layout_columnSpan="3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:gravity="center"
android:layout_rowWeight="10"
android:translationY="-35dp" />
<EditText
android:hint="Restaurant Name"
android:id="@+id/restaurantName"
android:layout_row="4"
android:layout_column="0"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:height="50dp"
android:layout_width="wrap_content"
android:layout_columnSpan="3"
android:layout_rowWeight="1"
android:translationY="-100dp"
android:inputType="text"
android:singleLine="true"
android:maxLines="1" />
<Button
android:text="@string/nextButton"
android:id="@+id/calcButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_row="5"
android:layout_column="2"
android:layout_columnSpan="3"
android:layout_gravity="right"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp" />
</GridLayout>
问题不是工具栏引起的。 'android:layout_columnSpan="3"' 是导致问题的原因,因为按钮设置在第 2 列中,而我试图将其跨度设置为 3,但它做不到。
此按钮代码更改修复了问题
android:layout_column="0"
android:layout_columnSpan="3"
我在加载支持时遇到 IllegalArgumentException。v7.toolbar 在编辑 xaml 个文件之一后。
这是编译器告诉我的
Creating class loader with 0 projects
Creating LibraryClassLoader in shadow copy path C:\Users\konno\AppData\Local\Temp\AndroidDesignerJars180644833948983183
Trying to load class android.support.v7.widget.Toolbar
mono.android.DesignerException: java.lang.IllegalArgumentException
at mono.android.DesignerException.fromThrowable(DesignerException.java:46)
at mono.android.DesignerSession.checkRenderResultForError(DesignerSession.java:187)
at mono.android.DesignerSession.load(DesignerSession.java:239)
at mono.android.DesignerSession.processMessage(DesignerSession.java:704)
at mono.android.MessageListener.executeMessage(MessageListener.java:88)
at mono.android.MessageListener$Runner.run(MessageListener.java:44)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: column indices (start + span) mustn't exceed the column count.
at android.widget.GridLayout.handleInvalidParams(GridLayout.java:823)
at android.widget.GridLayout.checkLayoutParams(GridLayout.java:837)
at android.widget.GridLayout.checkLayoutParams(GridLayout.java:853)
at android.view.ViewGroup.addViewInner(ViewGroup.java:4462)
at android.view.ViewGroup.addView(ViewGroup.java:4295)
at android.view.ViewGroup.addView(ViewGroup.java:4267)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:862)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368)
at mono.android.DesignerSession.load(DesignerSession.java:233)
... 4 more
我对工具栏所做的唯一一件事就是更改它所在的行。然后在设计器中重新打开后,我得到了上面的错误。我尝试删除我添加到工具栏的代码行,但错误仍然存在。
XAML Activity
的代码<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="3"
android:rowCount="6">
<!--This is for the Toolbar Only-->
<android.support.v7.widget.Toolbar
android:id="@+id/RestaurantTotalToolbar"
android:minHeight="?android:attr/actionBarSize"
android:layout_row="0"
android:background="@color/colorPrimary"
android:theme="@style/ToolbarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<!--This is for the Toolbar Only-->
<!--What is the Ticket Total? -->
<TextView
android:text="@string/questTicketTotal"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/questTicketTextView"
android:layout_row="1"
android:layout_column="0"
android:layout_columnSpan="3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:gravity="center"
android:layout_rowWeight="10" />
<EditText
android:hint="[=13=].00"
android:id="@+id/ticketTotal"
android:layout_row="2"
android:layout_column="0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:height="50dp"
android:layout_columnSpan="3"
android:layout_rowWeight="1"
android:translationY="-60dp"
android:maxLength="5"
android:inputType="numberDecimal"
android:maxLines="1" />
<!--What is the name of the Restaurant? -->
<TextView
android:text="@string/questRestaurantName"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/restaurantNameTextView"
android:layout_row="3"
android:layout_column="0"
android:layout_columnSpan="3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:gravity="center"
android:layout_rowWeight="10"
android:translationY="-35dp" />
<EditText
android:hint="Restaurant Name"
android:id="@+id/restaurantName"
android:layout_row="4"
android:layout_column="0"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:height="50dp"
android:layout_width="wrap_content"
android:layout_columnSpan="3"
android:layout_rowWeight="1"
android:translationY="-100dp"
android:inputType="text"
android:singleLine="true"
android:maxLines="1" />
<Button
android:text="@string/nextButton"
android:id="@+id/calcButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_row="5"
android:layout_column="2"
android:layout_columnSpan="3"
android:layout_gravity="right"
android:layout_marginBottom="5dp"
android:layout_marginRight="5dp" />
</GridLayout>
问题不是工具栏引起的。 'android:layout_columnSpan="3"' 是导致问题的原因,因为按钮设置在第 2 列中,而我试图将其跨度设置为 3,但它做不到。
此按钮代码更改修复了问题
android:layout_column="0"
android:layout_columnSpan="3"