简体   繁体   English

我的应用程序可能在其主线程上做过多的工作

[英]My application may be doing too much work on its main thread

I'm a new Android Studio programmer and I have this error that make my app crash sometimes. 我是一名新的Android Studio程序员,但遇到此错误有时会导致我的应用崩溃。 I put 6 ImageView into a layout with 12 buttons and my app say "I/Choreographer: Skipped 699 frames! The application may be doing too much work on its main thread." 我将6 ImageView放入具有12个按钮的布局中,我的应用程序说:“ I / Choreographer:已跳过699帧!该应用程序可能在其主线程上做了大量工作。” when I start the layout. 当我开始布局时。 How can I solve this? 我该如何解决? Heres the code 继承人代码

<?xml version="1.0" encoding="utf-8"?>

    <ImageView
        android:layout_width="150dp"
        android:layout_height="60dp"
        android:background="@drawable/frappesbutton2"
        android:id="@+id/imageView"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/buttonc2"
        android:layout_toStartOf="@+id/buttonc2" />

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/frapeonemarco2"
        android:layout_marginTop="21dp"
        android:id="@+id/imageView2"
        android:layout_below="@+id/imageView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc1"
        android:onClick="checkf1"
        android:text="@string/Check"
        android:layout_alignTop="@+id/imageView2"
        android:layout_toRightOf="@+id/imageView2"
        android:layout_toEndOf="@+id/imageView2" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA1"
        android:onClick="addf1"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc1"
        android:layout_alignLeft="@+id/buttonc1"
        android:layout_alignStart="@+id/buttonc1" />
    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/frapeonemarco3"
        android:id="@+id/imageView3"
        android:layout_alignTop="@+id/buttonc1"
        android:layout_toRightOf="@+id/buttonc1"
        android:layout_toEndOf="@+id/buttonc1"       />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc2"
        android:onClick="checkf2"
        android:text="@string/Check"
        android:layout_above="@+id/buttonA2"
        android:layout_alignLeft="@+id/buttonA2"
        android:layout_alignStart="@+id/buttonA2" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA2"
        android:onClick="addf2"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc1"
        android:layout_toRightOf="@+id/imageView3"
        android:layout_toEndOf="@+id/imageView3" />

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src= "@drawable/oreofrappe"
        android:layout_below="@+id/imageView2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="37dp"
        android:id="@+id/imageView4" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc3"
        android:onClick="checkf3"
        android:text="@string/Check"
        android:layout_alignTop="@+id/imageView4"
        android:layout_toLeftOf="@+id/imageView3"
        android:layout_toStartOf="@+id/imageView3" />

    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA3"
        android:onClick="addf3"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc3"
        android:layout_toRightOf="@+id/imageView4"
        android:layout_toEndOf="@+id/imageView4" />
    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/frappeoriginal3"
        android:layout_alignTop="@+id/buttonc3"
        android:layout_alignLeft="@+id/imageView3"
        android:layout_alignStart="@+id/imageView3"
        android:id="@+id/imageView5" />

    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc4"
        android:onClick="checkf4"
        android:text="@string/Check"
        android:layout_alignTop="@+id/imageView5"
        android:layout_toRightOf="@+id/imageView5"
        android:layout_toEndOf="@+id/imageView5" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA4"
        android:onClick="addf4"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc4"
        android:layout_toRightOf="@+id/imageView5"
        android:layout_toEndOf="@+id/imageView5" />

    <ImageView
        android:layout_width="150dp"
        android:layout_height="60dp"
        android:background="@drawable/frappesbutton"

        android:layout_marginTop="22dp"
        android:id="@+id/imageView7"
        android:layout_below="@+id/imageView5"
        android:layout_alignRight="@+id/imageView5"
        android:layout_alignEnd="@+id/imageView5" />

    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/firstcoffee"

        android:id="@+id/imageView6"
        android:layout_below="@+id/imageView7"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="27dp" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc5"
        android:onClick="checkc1"
        android:text="@string/Check"
        android:layout_alignTop="@+id/imageView6"
        android:layout_toLeftOf="@+id/imageView5"
        android:layout_toStartOf="@+id/imageView5" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA5"
        android:onClick="addc1"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc5"
        android:layout_alignLeft="@+id/buttonc5"
        android:layout_alignStart="@+id/buttonc5" />





    <ImageView
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:src="@drawable/segundocafe"
        android:id="@+id/imageView8"
        android:layout_alignParentBottom="true"
        android:layout_toRightOf="@+id/buttonc5"
        android:layout_toEndOf="@+id/buttonc5" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonc6"
        android:onClick="checkc2"
        android:text="@string/Check"
        android:layout_alignBaseline="@+id/buttonc5"
        android:layout_alignBottom="@+id/buttonc5"
        android:layout_toRightOf="@+id/imageView7"
        android:layout_toEndOf="@+id/imageView7" />
    <Button
        android:layout_width="80dp"
        android:layout_height="35dp"
        android:id="@+id/buttonA6"
        android:onClick="addc1"
        android:text="@string/Add_it"
        android:layout_below="@+id/buttonc5"
        android:layout_toRightOf="@+id/imageView7"
        android:layout_toEndOf="@+id/imageView7" />

</RelativeLayout>

This is what I want to do: Emulator Preview 这就是我想要做的: 仿真器预览

App run but is slow and It may crash. 应用程序运行但速度慢,并且可能会崩溃。

Maybe your images size are too big. 也许您的图片尺寸太大。 Check their resolution and resize them if there are too big. 检查它们的分辨率,如果太大,请调整它们的大小。 Do not use more than 800*800 images and try to have diffrent images for diffrent devices by putting suitable image at the right drawable folder. 不要使用超过800 * 800的图像,并通过在合适的可绘制文件夹中放置合适的图像来尝试使不同设备具有不同图像。

Try : 尝试:

<application
    android:largeHeap="true"
    tools:replace="android:theme,android:icon" >

And Put drawable in every drawable folder. 并将drawable放入每个drawable文件夹中。 Don't only put drawable in drawable-xhdpi or other.Put drawable in drawable-xhdpi drawable-xxhdpi drawable-hdpi . 不要只将drawable放在drawable-xhdpi或其他中。把drawable放在drawable-xhdpi drawable-xxhdpi drawable-hdpi

Because if you have no drawable fit your phone. 因为如果没有可绘制的物体,则适合您的手机。 drawable will be scale and cast memory. drawable将是比例和强制转换内存。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM