

Android Studioでアプリを作っています。仮想マシンを起動したら、以下のようにエラーが出ました。  
長くてどこをどう読めば良いのかわかりません。  
わかる方いらっしゃいましたら教えてください、どこが間違っているのでしょうか？

> \--------- beginning of crash  
>  07-03 21:29:28.913 2098-2098 E/AndroidRuntime: FATAL EXCEPTION: main  
>  Process: , PID: 2098  
>  java.lang.RuntimeException: Unable to start activity
> ComponentInfo{teamgirls/teamgirls.MainActivity}:
> android.view.InflateException: Binary XML file line #33:
> HorizontalScrollView can host only one direct child  
>  at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)  
>  at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
>  at android.app.ActivityThread.-wrap11(ActivityThread.java)  
>  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
>  at android.os.Handler.dispatchMessage(Handler.java:102)  
>  at android.os.Looper.loop(Looper.java:148)  
>  at android.app.ActivityThread.main(ActivityThread.java:5417)  
>  at java.lang.reflect.Method.invoke(Native Method)  
>  at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
>  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
>  Caused by: android.view.InflateException: Binary XML file line #33:
> HorizontalScrollView can host only one direct child  
>  at android.view.LayoutInflater.inflate(LayoutInflater.java:539)  
>  at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
>  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
>  at
> android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
>  at
> android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
>  at yurihasuike.teamgirls.MainActivity.onCreate(MainActivity.java:24)  
>  at android.app.Activity.performCreate(Activity.java:6237)  
>  at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
>  at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
>  at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
>  at android.app.ActivityThread.-wrap11(ActivityThread.java)  
>  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
>  at android.os.Handler.dispatchMessage(Handler.java:102)  
>  at android.os.Looper.loop(Looper.java:148)  
>  at android.app.ActivityThread.main(ActivityThread.java:5417)  
>  at java.lang.reflect.Method.invoke(Native Method)  
>  at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
>  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
>  Caused by: java.lang.IllegalStateException: HorizontalScrollView can host
> only one direct child  
>  at
> android.widget.HorizontalScrollView.addView(HorizontalScrollView.java:243)  
>  at android.view.LayoutInflater.rInflate(LayoutInflater.java:839)  
>  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)  
>  at android.view.LayoutInflater.inflate(LayoutInflater.java:515)  
>  at android.view.LayoutInflater.inflate(LayoutInflater.java:423)  
>  at android.view.LayoutInflater.inflate(LayoutInflater.java:374)  
>  at
> android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)  
>  at
> android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
>  at teamgirls.MainActivity.onCreate(MainActivity.java:24)  
>  at android.app.Activity.performCreate(Activity.java:6237)  
>  at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)  
>  at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)  
>  at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
>  at android.app.ActivityThread.-wrap11(ActivityThread.java)  
>  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
>  at android.os.Handler.dispatchMessage(Handler.java:102)  
>  at android.os.Looper.loop(Looper.java:148)  
>  at android.app.ActivityThread.main(ActivityThread.java:5417)  
>  at java.lang.reflect.Method.invoke(Native Method)


CC BY-SA 3.0
2016-07-03T12:34:19.150
27302
2016-08-20T04:37:25.240
2016-07-03T23:25:53.037
15185
14754
question
android java android-studio
仮想マシン起動時にエラーが発生する


スタックトレースをそのまま上から一行ずつ読めばいいのですよ。  
まず気になったところ

> java.lang.RuntimeException: Unable to start activity
> ComponentInfo{teamgirls/teamgirls.MainActivity}:
> android.view.InflateException: Binary XML file line #33:
> HorizontalScrollView can host only one direct child

の所から、XMLファイルに間違いがある可能性があることがわかります。(XML の33行目)

> at yurihasuike.teamgirls.MainActivity.onCreate(MainActivity.java:24)

から、  
作ったアプリのMainActivityのonCreateメソッドで発生している可能性があることが分かります。  
恐らく `setContentView(R.id.layoutName)`で発生しているのでは？


CC BY-SA 3.0
2016-07-03T22:19:48.150
27309
2016-08-20T04:37:25.240
2016-08-20T04:37:25.240
15185
15185
27302
answer

[code]

    java.lang.RuntimeException: Unable to start activity ComponentInfo{teamgirls/teamgirls.MainActivity}: android.view.InflateException: Binary XML file line #33: HorizontalScrollView can host only one direct child
    
[/code]

とのことなので、 `MainActivity` に使っているレイアウトファイル内で `HorizontalScrollView`
要素の直下に複数の子要素があるのではないでしょうか。複数の要素を ScrollView 内に並べたい場合は、ScrollView の直下に
RelativeLayout や LinearLayout を置いて、その中に配置すると良いと思います。


CC BY-SA 3.0
2016-07-04T03:34:45.570
27317
2016-07-04T03:34:45.570
4575
27302
answer