我对android编程非常陌生,在尝试运行这个简单的程序时,我收到错误:"Unfortunately your app stopped"
。
所以我去看了 Logcat 文件,我认为这就是问题所在:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.example.tictactoe, PID: 3202
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.example.tictactoe/org.example.tictactoe.MainActivity}: java.lang.RuntimeException: Binary XML file line #2: You must supply a layout_width attribute.
但是看着我的文件,我看不到它丢失的地方。
这是我使用的文件.xml:
activity_main.xml中:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/lib/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
tools:context=".TicTacToeActivity">
<fragment
android:id="@+id/main_fragment"
android:name="org.example.tictactoe.MainFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
tools:layout="@layout/fragment_main"/>
</FrameLayout>
fragment_main.xml :
<LinearLayout
xmlns:android="http://schemas.android.com/apk/lib/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/menu_background"
android:elevation="@dimen/elevation_high"
android:orientation="vertical"
android:padding="@dimen/menu_padding"
tools:context=".TicTacToeActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/menu_space"
android:text="@string/long_app_name"
android:textAppearance="?android:textAppearanceLarge"
android:textSize="@dimen/menu_text_size"
/>
<Button
android:id="@+id/continue_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/menu_button_margin"
android:padding="@dimen/menu_button_padding"
android:text="@string/continue_label"
/>
<Button
android:id="@+id/new_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="@dimen/menu_button_margin"
android:padding="@dimen/menu_button_padding"
android:text="@string/new_game_label"
/>
<Button
android:id="@+id/about_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="@dimen/menu_button_margin"
android:padding="@dimen/menu_button_padding"
android:text="@string/about_label"
/>
</LinearLayout>
menu_background :
<shape
xmlns:android="http://schemas.android.com/apk/lib/android"
android:shape="rectangle">
<stroke
android:width="@dimen/stroke_width"
android:color="@color/border_color"/>
<solid android:color="@color/field_color"/>
<corners android:radius="@dimen/corner_radius"/>
</shape>
我无法找到缺少layout_width属性的位置。
答案 0 :(得分:0)
<link rel="stylesheet" href="/static/styles/main.css" type="text/css">
中的"wrap_content "
和layout_width
中的layout_height
有空格。
答案 1 :(得分:0)
布局中有空格。例如,在fragment_main.xml
:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/lib/android "
xmlns:tools="http://schemas.android.com/tools "
在布局中使用"
或的查找和替换。
更新
以下xml中还有另一个错误:
您无法使用class="org.example.tictactoe.MainFragment"
。但是您需要使用android:name
属性。所以,它应该是:
<fragment
android:id="@+id/main_fragment"
android:name="org.example.tictactoe.MainFragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
tools:layout="@layout/fragment_main"/>
在xml代码中发现了另一个问题。使用xmlns:android="http://schemas.android.com/apk/res/android"
代替xmlns:android="http://schemas.android.com/apk/lib/android"
。
答案 2 :(得分:0)
从android:layout_gravity="@layout/fragment_main"
activity_main.xml
android:layout_gravity
需要特定参数android:layout_gravity Reference Link