NullPointerException в appcompat-v22 для устройств Eclair

Кто-нибудь тестировал свое приложение на Android 2.1 после обновления до appcompat-v22? Мое приложение отлично работает с appcompat-v21 и Android 2.2. У меня есть действие навигационного ящика с панелью инструментов и список фрагментов в качестве содержимого моего действия. Я использую инструменты сборки 22.0.1, targetSdkVersion 22 и appcompat-v7:22.0.0.

Мой сбой, похоже, указывает на то, что виновником может быть флажок в моем списке фрагментов, вот исходный стек:

 Caused by: java.lang.NullPointerException
        at android.graphics.drawable.StateListDrawable.mutate(StateListDrawable.java:241)
        at android.support.v7.internal.widget.TintManager.getDrawable(TintManager.java:140)
        at android.support.v7.internal.widget.TintTypedArray.getDrawable(TintTypedArray.java:62)
        at android.support.v7.internal.widget.TintCheckBox.<init>(TintCheckBox.java:49)
        at android.support.v7.internal.widget.TintCheckBox.<init>(TintCheckBox.java:41)
        at android.support.v7.app.ActionBarActivityDelegateBase.createView(ActionBarActivityDelegateBase.java:790)
        at android.support.v7.app.ActionBarActivity.onCreateView(ActionBarActivity.java:548)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:558)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
        at com.myapp.myapp.adapter.MyAdapter.getView(MyAdapter.java:79)
        at android.widget.AbsListView.obtainView(AbsListView.java:2818)
        at android.widget.ListView.makeAndAddView(ListView.java:1751)
        at android.widget.ListView.fillSpecific(ListView.java:1283)
        at android.widget.ListView.layoutChildren(ListView.java:1582)
        at android.widget.AbsListView.onLayout(AbsListView.java:2478)
        at android.view.View.layout(View.java:6892)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
        at android.view.View.layout(View.java:6892)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
        at android.view.View.layout(View.java:6892)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
        at android.view.View.layout(View.java:6892)
        at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:907)
        at android.view.View.layout(View.java:6892)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
        at android.view.View.layout(View.java:6892)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
        at android.view.View.layout(View.java:6892)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
        at android.view.View.layout(View.java:6892)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
        at android.view.View.layout(View.java:6892)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
        at android.view.View.layout(View.java:6892)
        at android.view.ViewRoot.performTraversals(ViewRoot.java:1021)
        at android.view.ViewRoot.handleMessage(ViewRoot.java:1658)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:123)
        at android.app.ActivityThread.main(ActivityThread.java:4363)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:521)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
        at dalvik.system.NativeStart.main(Native Method)

Кто-нибудь видел что-то подобное при обновлении своего приложения до v22? Кто-нибудь еще поддерживает Android 2.1?


person tabjsina    schedule 25.03.2015    source источник
comment
Никто больше не поддерживает 2.1. Даже 2.2 составляет 0,4% установок согласно Google Play. Люди ориентируются либо на 2.3 (около 7%), либо на 4.0 (около 6%, но легче поддерживать). 3.0 настолько низок, что его нет в чартах. Это просто не имеет финансового смысла для компании или усилий для любителя делать больше. Вы можете просмотреть статистику по адресу developer.android.com/about/dashboards/index.html< /а>   -  person Gabe Sechan    schedule 26.03.2015
comment
Я не могу сказать, троллит ли OP об Eclair.   -  person Jared Burrows    schedule 26.03.2015
comment
Я не троллил, я понимаю, что цифры низкие. Мое приложение составляет около 0,2%, но я просто удивлен, что appcompat-v7, который должен поддерживать возврат к Android 2.1, сломается вот так. Я понял из ответов здесь, что я должен просто отпустить :)   -  person tabjsina    schedule 26.03.2015
comment
appcompat-v7 (вы используете версию 22.0.0) предназначен для поддержки Eclair MR1 (API 7, 2.1.x), поэтому отправьте сообщение об ошибке на система отслеживания ошибок AOSP. Вероятно, это ошибка фреймворка, вызванная реализацией подкрашивания совместимости.   -  person alanv    schedule 26.03.2015
comment
Спасибо за ответ Алан - я создал новую проблему для этого. code.google.com/p/android/issues/detail?id= 161539   -  person tabjsina    schedule 26.03.2015


Ответы (1)


Это исправлено в библиотеке поддержки 22.1.0 (см.: https://code.google.com/p/android/issues/detail?id=161539)

person tabjsina    schedule 17.08.2015