Как отладить, какая часть моего приложения вызывает принудительное закрытие (проблема обратной совместимости) - PullRequest
0 голосов
/ 14 июня 2019

Это мое первое занятие по написанию любого кода, не говоря уже об Android-приложении.Я создал проект с compileSdkVersion из 28, targetSdkVersion из 28 и minSdkVersion из 23. Приложение будет работать только на Android Pie и зависать на любой предыдущей версии, на которую я пытался его установить.

Все компилируется правильно ичудесно работает на эмуляторе и моем личном телефоне (оба на пироге).Я много читал об использовании библиотеки поддержки Android, однако я не видел никакой информации о том, как понять, какие части вашего кода должны использовать вещи из библиотеки поддержки по сравнению с фреймворком.Android Studio, возможно, предупреждал меня об использовании вещей из библиотеки поддержки, но, будучи новичком в этом, я не знал, что это значит или каким должен быть мой правильный выбор.Теперь, когда я понимаю, я не знаю, как атаковать, возвращаясь и находя (а затем исправляя) все, что нужно для использования библиотек поддержки.

Я импортировал com.android.support:appcompat-v7 и получилиспользовал AppCompatActivity вместо Activity.В двух словах, я использую textViews, editTexts, спиннеры и TabHost (с двумя вкладками).Я думаю, что ActionBar также может быть проблемой, но я не знаю, как увидеть, если это проблема и как ее исправить.

Остальная часть кода - математические вычисления с кучей if /операторы then / else и некоторые операторы switch.

Приложение закрывается, когда оно открывается после установки на любую ОС до Android Pie.

Фрагмент из content_main.xml (макет):

<Spinner
    android:id="@+id/spnFromPool"
    android:layout_width="176dp"
    android:layout_height="34dp"
    android:layout_gravity="start"
    android:layout_weight="0.3"
    android:background="@drawable/bg_spinner"
    android:entries="@array/pool_type_array" />

bg_spinner.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/swimToolPrimary"/>
            <corners android:radius="10dp" />
            <stroke android:color="#000000" android:width="1dp" />
        </shape>
    </item>
    <item android:gravity="center_vertical|right" android:right="8dp">
        <layer-list>
            <item android:width="12dp" android:height="12dp"  android:gravity="center" android:bottom="10dp"
                tools:targetApi="m">
                <rotate
                    android:fromDegrees="45"
                    android:toDegrees="45">
                    <shape android:shape="rectangle">
                        <solid android:color="@color/swimToolSecondary" />
                        <stroke android:color="@color/swimToolSecondary" android:width="1dp"/>
                    </shape>
                </rotate>
            </item>
            <item android:width="20dp" android:height="10dp" android:bottom="21dp" android:gravity="center"
                tools:targetApi="m">
                <shape android:shape="rectangle">
                    <solid android:color="@color/swimToolPrimary"/>
                </shape>
            </item>
        </layer-list>
    </item>
</layer-list>

1 Ответ

1 голос
/ 14 июня 2019

Вы можете проверить проблему в журнале Android Studio, выбрав «Нет фильтров» в верхнем правом углу в LogCat и для фильтрации данных вы можете добавить имя пакета вашего приложения в строке поиска.

...