Android-приложение. Приложение работает очень медленно и вызывает ошибку

Я недавно начал заниматься в школе разработкой для Android, и мне интересно, почему мой код не работает? Любая помощь будет принята с благодарностью. Я создаю приложение Tip Tracker, чтобы помочь мне отслеживать мои советы при доставке пиццы. Я знаю, что подобное приложение было создано, но я хочу создать свое собственное, и это также мой окончательный проект на семестр. Сейчас я просто пытаюсь перемещаться между окнами, чтобы убедиться, что могу связать все вместе, прежде чем сойти с ума по пользовательскому интерфейсу. Я не вижу, где у меня на самом деле проблема, но я получаю сообщение об ошибке "К сожалению, [приложение] перестало работать" при нажатии кнопки "Доставка" на главном экране. Так что мое второе окно никогда не появляется. Кроме того, мое приложение очень медленное и иногда не отвечает. Спасибо всем, кто может помочь. Мой код выглядит следующим образом:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
    android:gravity="center|bottom"
    android:orientation="vertical">

    <Button
        android:layout_width="155dp"
        android:layout_height="60dp"
        android:layout_gravity="center_horizontal|center"
        android:layout_marginBottom="10dp"
        android:background="@drawable/button_bg"
        android:text="Delivery"
        android:id="@+id/deliveryButton" />

    <Button
        android:layout_width="155dp"
        android:layout_height="60dp"
        android:layout_gravity="center_horizontal|center"
        android:layout_marginBottom="10dp"
        android:background="@drawable/button_bg"
        android:text="LOG"
        android:id="@+id/logButton" />

    <Button
        android:layout_width="155dp"
        android:layout_height="60dp"
        android:layout_gravity="center_horizontal|center"
        android:layout_marginBottom="10dp"
        android:background="@drawable/button_bg"
        android:text="MAPS"
        android:id="@+id/mapsButton" />

Код для моего основного файла Java:

public class MainActivity extends AppCompatActivity {

private Button launchDeliveryActivity;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    launchDeliveryActivity = (Button) findViewById(R.id.deliveryButton);

    launchDeliveryActivity.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            launchActivity();
        }
    });
}

private void launchActivity()
{
    Intent intent = new Intent(this, orderDetailsActivity.class);
    startActivity(intent);
}

И мое второе окно - это то, что я быстро скомбинировал, чтобы быть уверенным, что смогу перейти с главного экрана на второе окно и обратно:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/order_details"
    android:orientation="vertical">

    <Button
        android:layout_width="120dp"
        android:layout_height="60dp"
        android:text="Home"
        android:id="@+id/homeScreenButton" />
</LinearLayout>

И, наконец, мой второй файл Java:

public class orderDetailsActivity extends AppCompatActivity {

private Button homeScreen;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.order_details);

    homeScreen = (Button) findViewById(R.id.homeScreenButton);

    homeScreen.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            finish();
        }
    });
}

Журналы:

1:29. Выполнение задач: [:app:assemblyDebug]

1:29 утра Сборка Gradle завершена за 1 с 781 мс

1:31 AM Выполнение задач: [:app:assemblyDebug]

1:31 утра Сборка Gradle завершена в 7 с 15 мс

1:31 AM Instant Run выполнила полную сборку и установку, поскольку установка на устройстве не соответствует локальной сборке на диске. (Не показывать снова)

1:40. Выполнение задач: [:app:assemblyDebug]

1:40 утра Сборка Gradle завершена за 1 с 203 мс

1:43 AM Выполнение задач: [:app:assemblyDebug]

1:43 утра Сборка Gradle закончилась за 983 мс

РЕДАКТИРОВАТЬ: Logcat является:

03-27 03:37:59.550 31525-31525/com.example.boley.personaldeliveryassistant E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                         Process: com.example.boley.personaldeliveryassistant, PID: 31525
                                                                                         java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.boley.personaldeliveryassistant/com.example.boley.personaldeliveryassistant.orderDetailsActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>
                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
                                                                                             at android.app.ActivityThread.access$1100(ActivityThread.java:221)
                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                             at android.os.Looper.loop(Looper.java:158)
                                                                                             at android.app.ActivityThread.main(ActivityThread.java:7224)
                                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
                                                                                          Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:551)
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
                                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
                                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                                             at com.example.boley.personaldeliveryassistant.orderDetailsActivity.onCreate(orderDetailsActivity.java:15)
                                                                                             at android.app.Activity.performCreate(Activity.java:6876)
                                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206)
                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                                             at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                             at android.os.Looper.loop(Looper.java:158) 
                                                                                             at android.app.ActivityThread.main(ActivityThread.java:7224) 
                                                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                                                                                          Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
                                                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:657)
                                                                                             at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
                                                                                             at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706)
                                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774)
                                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                                             at com.example.boley.personaldeliveryassistant.orderDetailsActivity.onCreate(orderDetailsActivity.java:15) 
                                                                                             at android.app.Activity.performCreate(Activity.java:6876) 
                                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                                             at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                             at android.os.Looper.loop(Looper.java:158) 
                                                                                             at android.app.ActivityThread.main(ActivityThread.java:7224) 
                                                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                                                                                          Caused by: java.lang.reflect.InvocationTargetException
                                                                                             at java.lang.reflect.Constructor.newInstance(Native Method)
                                                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:631)
                                                                                             at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
                                                                                             at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706) 
                                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774) 
                                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                                             at com.example.boley.personaldeliveryassistant.orderDetailsActivity.onCreate(orderDetailsActivity.java:15) 
                                                                                             at android.app.Activity.performCreate(Activity.java:6876) 
                                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                                             at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                             at android.os.Looper.loop(Looper.java:158) 
                                                                                             at android.app.ActivityThread.main(ActivityThread.java:7224) 
                                                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
                                                                                          Caused by: java.lang.OutOfMemoryError: Failed to allocate a 207355916 byte allocation with 16773008 free bytes and 53MB until OOM
                                                                                             at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
                                                                                             at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
                                                                                             at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:856)
                                                                                             at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:675)
                                                                                             at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:2228)
                                                                                             at android.content.res.Resources.loadDrawableForCookie(Resources.java:4215)
                                                                                             at android.content.res.Resources.loadDrawable(Resources.java:4089)
                                                                                             at android.content.res.Resources.loadDrawable(Resources.java:3939)
                                                                                             at android.content.res.TypedArray.getDrawable(TypedArray.java:886)
                                                                                             at android.view.View.<init>(View.java:4230)
                                                                                             at android.view.ViewGroup.<init>(ViewGroup.java:589)
                                                                                             at android.widget.LinearLayout.<init>(LinearLayout.java:202)
                                                                                             at android.widget.LinearLayout.<init>(LinearLayout.java:198)
                                                                                             at android.widget.LinearLayout.<init>(LinearLayout.java:194)
                                                                                             at java.lang.reflect.Constructor.newInstance(Native Method) 
                                                                                             at android.view.LayoutInflater.createView(LayoutInflater.java:631) 
                                                                                             at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
                                                                                             at android.view.LayoutInflater.onCreateView(LayoutInflater.java:706) 
                                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:774) 
                                                                                             at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) 
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:429) 
                                                                                             at android.view.LayoutInflater.inflate(LayoutInflater.java:380) 
                                                                                             at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) 
                                                                                             at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                                             at com.example.boley.personaldeliveryassistant.orderDetailsActivity.onCreate(orderDetailsActivity.java:15) 
                                                                                             at android.app.Activity.performCreate(Activity.java:6876) 
                                                                                             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135) 
                                                                                             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3206) 
                                                                                             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349) 
                                                                                             at android.app.ActivityThread.access$1100(ActivityThread.java:221) 
                                                                                             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794) 
                                                                                             at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                                             at android.os.Looper.loop(Looper.java:158) 
                                                                                             at android.app.ActivityThread.main(ActivityThread.java:7224) 
                                                                                             at java.lang.reflect.Method.invoke(Native Method) 
                                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
                                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  

2 ответа

Решение

Подозреваемый ANR может быть нарисован "order_details". Как нет другого компонента в вашем втором действии. Пожалуйста, проверьте размер отрисовки "order_details". Если он огромен, то это может быть причиной ANR. Попробуйте, изменив Drawable или удалив его.

Пожалуйста, проверьте журналы устройства, у него будет тег "I_am anr". Там может быть некоторая информация в журналах для ANR.

Я думаю, что ошибка становится причиной: java.lang.OutOfMemoryError: Не удалось выделить 207355916 байт с 16773008 свободными байтами и 53 МБ, показывающими в журнале, поэтому сначала удалите изображение из Order_details Linearlayout и проверьте, и если вы хотите использовать это изображение, то уменьшите размер и установите время выполнения, проверьте это

Другие вопросы по тегам