【问题标题】:My app is successfully build but it keeps crashing我的应用程序已成功构建,但它一直在崩溃
【发布时间】:2020-04-02 17:15:23
【问题描述】:

我有一个制作安卓应用的学校项目。但是当我运行该应用程序时,它会在 logcat 中不断显示类似的内容。我是android工作室的新手。请帮帮我。

2020-04-03 00:10:26.352 31907-31907/com.example.citypage E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.citypage, PID: 31907
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.citypage/com.example.citypage.MainActivity}: android.view.InflateException: Binary XML file line #88 in com.example.citypage:layout/activity_main: ScrollView can host only one direct child
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3448)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2147)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7814)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)
     Caused by: android.view.InflateException: Binary XML file line #88 in com.example.citypage:layout/activity_main: ScrollView can host only one direct child
     Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child
        at android.widget.ScrollView.addView(ScrollView.java:599)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1127)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
        at com.example.citypage.MainActivity.onCreate(MainActivity.java:13)
        at android.app.Activity.performCreate(Activity.java:7955)
        at android.app.Activity.performCreate(Activity.java:7944)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3423)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2147)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:237)
        at android.app.ActivityThread.main(ActivityThread.java:7814)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)
2020-04-03 00:10:26.377 31907-31907/com.example.citypage I/Process: Sending signal. PID: 31907 SIG: 9

【问题讨论】:

  • 阅读错误告诉你的内容IllegalStateException: ScrollView can host only one direct child
  • 哎呀!谢谢你的回答。它已经开始工作了。

标签: android android-studio


【解决方案1】:

检查 :layout/activity_main 文件中的 ScrollView,您可能在 ScrollView 中有多个子级,删除它们或合并它们。

在 ScrollView 中,您不能放置多个直接子级。

【讨论】:

  • 结合它们的最佳方式是什么?我应该将它们合并到相对布局中吗?
  • 是的,你应该在 LinearLayout 中组合它们
  • @darkcavalierr 取决于您的 UI 和有多少视图,您可以使用什么布局,但要合二为一。
【解决方案2】:

您的错误是“ScrollView can host only one direct child”。通过将所有其他视图包装在 LinearLayout 或另一个 Layout 视图中,确保您的 ScrollView 中只有一个视图。

【讨论】:

    【解决方案3】:

    在ScrollView 中只保留一个布局。因为它只能容纳一个直接孩子。类似于下面的代码。不必强制拥有ConstraintLayout,任何布局都可以。但ScrollView中只有一个直系子女

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
         <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            ----- //child Layout 1
    
            ----- //child layout 2
    
         </androidx.constraintlayout.widget.ConstraintLayout>
    
     </ScrollView>
    

    【讨论】:

    • 好的,很高兴为您提供帮助
    【解决方案4】:

    您的错误是关于滚动视图,您必须使用我们enter code heree 在滚动视图中只有 1 个直接子视图,然后将所有需要的视图放在该子视图中。

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
         <Linearlayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            ----- //child Layout 1
    
            ----- //child layout 2
    
         </Linearlayout>
    
     </ScrollView>
    

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 2018-12-27
      • 1970-01-01
      • 2021-03-04
      • 2022-11-11
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多