Я нашел эту ошибку в своем Crashlytics, и похоже, что она падает только для пользователей с предварительной версией Android Nougat.
Приложение вылетает при запуске (основное действие).
Трассировка стека
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.domain/com.my.domain.activities.MainActivity}: android.content.res.Resources$NotFoundException: Can't find ColorStateList from drawable resource ID #0x7f020057
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by android.content.res.Resources$NotFoundException: Can't find ColorStateList from drawable resource ID #0x7f020057
at android.content.res.ResourcesImpl.loadColorStateList(ResourcesImpl.java:840)
at android.content.res.Resources.loadColorStateList(Resources.java:998)
at android.content.res.TypedArray.getColor(TypedArray.java:447)
at android.app.Activity.onApplyThemeResource(Activity.java:4039)
at android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java:198)
at android.view.ContextThemeWrapper.setTheme(ContextThemeWrapper.java:140)
at android.app.Activity.setTheme(Activity.java:4009)
at android.support.v7.app.AppCompatActivity.setTheme(AppCompatActivity.java:90)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2592)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Похоже, Android Nougat больше не поддерживает некоторые системные цвета, которые я использую в своем приложении? Но я не знаю точно, как это исправить.
Изменить
Итак, я нашел ресурс с идентификатором 0x7f020057 в моем файле R, и вот он:
открытый статический окончательный int background_splash_gradient = 0x7f020057;
Я проверил, где я его использую, и вот он:
<style name="StartingWindowTheme" parent="AppTheme">
<item name="android:windowBackground">@drawable/background_splash_gradient</item>
<item name="android:colorBackground">@drawable/background_splash_gradient</item>
</style>
А это XML-файл background_splash_gradiend:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="135"
android:endColor="#00d49e"
android:startColor="#00bcd4"/>
</shape>
Я до сих пор не знаю, почему это вызывает проблемы с Nougat. Я попытался удалить стиль «StartingWindowTheme», и теперь приложение работает, оно больше не падает. Но мне нужно лучшее решение, чем это.
Изменить 2
Итак, я попытался удалить эту строку:
<item name="android:colorBackground">@drawable/background_splash_gradient</item>
И это работает. Похоже, проблема в android:colorBackground
.
ВРЕМЕННОЕ ИСПРАВЛЕНИЕ
Так как проблема в указанной выше строчке, только на Nougat, я создал папку values-v24
и удалил строчку там. Приложение теперь работает на Nougat, но я был бы признателен за лучшее решение.
android.R.color
? - person EpicPandaForce   schedule 01.08.2016R
и увидеть имя переменной для0x7f020057
(то есть2130837591
) - person EpicPandaForce   schedule 01.08.2016android.R.color.white
,android.R.color.transparent
иandroid.R.color.black
. - person EpicPandaForce   schedule 01.08.2016windowBackground
, но удалитеcolorBackground
? - person EpicPandaForce   schedule 01.08.2016colorBackground
? Рад слышать, что вы нашли решение. - person EpicPandaForce   schedule 01.08.2016