2017-12-11 14 views
0

私は非常にAndroidプログラミングの新機能です。このシンプルなプログラムを実行しようとしているうちにエラーが発生します:"Unfortunately your app stopped"致命的なエラー:layout_width属性を指定する必要があります

だから私は行って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. 

それが欠けているところ、私は見ていない私のファイルを見ています。

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:をmenu_background

<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> 

この

は、私が使用したファイルの.xmlです
<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

レイアウトに空白があります。例えば、fragment_main.xmlに:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/lib/android " 
xmlns:tools="http://schemas.android.com/tools " 

使用して検索し、あなたのレイアウトで"またはのために交換してください。


UPDATE

あなたは、次の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/lib/android"の代わりにxmlns:android="http://schemas.android.com/apk/res/android"を使用してください。 activity_main.xml

android:layout_gravityから

+0

ありがとう、私はコードを調整し、私の質問を編集しましたが、私はまだアプリを実行すると同じ虚偽のエラーが発生します。 – IDK

+0

@IDK:コードに別のエラーが見つかりました。更新された回答を確認してください。 –

+0

さて、コードを修正し、私の質問を編集しました...しかし、まだ:---------クラッシュの開始 致命的な例外:メイン プロセス:org.example.tictactoe、PID:3110 java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {org.example.tictactoe /org.example.tictactoe.MainActivity}:java.lang.RuntimeException:バイナリXMLファイル行#2:layout_width属性を指定する必要があります。 – IDK

0

"wrap_content "の範囲はlayout_widthで、layout_heightの範囲はMainFragmentです。

+0

答えてくれてありがとうを必要とする、しかし私は、スペースを削除した後、同じエラーがまだ表示される、ということを知りませんでした。.. – IDK

0

削除android:layout_gravity="@layout/fragment_main"は、特定のパラメータandroid:layout_gravity Reference Link

Fragments reference

+0

あなたが正しい答えをありがとう、私はそれを変更し、私の質問を編集しましたが、実行すると、私は同じ間違ったエラーを取得します。 – IDK

関連する問題