Мое приложение успешно собрано, но оно продолжает падать - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть школьный проект по созданию приложения android. Но когда я запускаю приложение, оно показывает такие вещи в logcat. Я новичок ie в 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

Ответы [ 4 ]

0 голосов
/ 02 апреля 2020

Ваша ошибка связана с представлением прокрутки, вы должны использовать нас enter code here e только 1 прямой ребенок в представлении прокрутки yhen поместите все необходимые представления внутри этого дочернего представления.

<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>
0 голосов
/ 02 апреля 2020

Отметьте ScrollView в вашем файле :layout/activity_main, в ScrollView вы можете иметь несколько дочерних элементов, удалить их или объединить их.

В ScrollView вы не можете разместить более одного прямого дочернего элемента.

0 голосов
/ 02 апреля 2020

Храните только один макет внутри 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>
0 голосов
/ 02 апреля 2020

Ваша ошибка говорит 'ScrollView can host only one direct child'. Убедитесь, что у вас есть только один вид внутри ScrollView, обернув все остальные виды внутри LinearLayout или другого вида Layout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...