2016-03-01 21 views
6

Nie zmieniłem żadnych ustawień dotyczących ustawień między tą kompilacją a ostatnią, która działa.Uaktualnione biblioteki pomocy technicznej do wersji 23.2.0 i ResourceNotFoundException za pomocą funkcji CheckBoxPreference PreferenceFragmen

Awaria występuje w interfejsie API 16, natomiast w interfejsie API 23 działa poprawnie. To jest w Genymotion. Nie mam dostępnego niższego prawdziwego urządzenia.

EDYTOWANIE - Od tego czasu testowałem na Sony Xperii U z uruchomioną wersją 4.0.4 i nastąpiła ta sama awaria.

Wydaje mi się, że udało mi się go wyśledzić, ponieważ musiałem uaktualnić biblioteki wsparcia do wersji 23.2.0, ponieważ zmieniłem ją i teraz działa.

Ktoś inny tego doświadcza?

03-01 18:36:20.693 1846-1846/? E/AndroidRuntime: FATAL EXCEPTION: main 
               android.view.InflateException: Binary XML file line #19: Error inflating class android.widget.CheckBox 
                at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
                at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
                at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
                at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
                at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                at android.preference.Preference.onCreateView(Preference.java:480) 
                at android.preference.Preference.getView(Preference.java:451) 
                at android.preference.PreferenceGroupAdapter.getView(PreferenceGroupAdapter.java:221) 
                at android.widget.AbsListView.obtainView(AbsListView.java:2267) 
                at android.widget.ListView.makeAndAddView(ListView.java:1769) 
                at android.widget.ListView.fillDown(ListView.java:672) 
                at android.widget.ListView.fillFromTop(ListView.java:733) 
                at android.widget.ListView.layoutChildren(ListView.java:1608) 
                at android.widget.AbsListView.onLayout(AbsListView.java:2102) 
                at android.view.View.layout(View.java:13754) 
                at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649) 
                at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507) 
                at android.widget.LinearLayout.onLayout(LinearLayout.java:1420) 
                at android.view.View.layout(View.java:13754) 
                at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
                at android.view.View.layout(View.java:13754) 
                at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649) 
                at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507) 
                at android.widget.LinearLayout.onLayout(LinearLayout.java:1420) 
                at android.view.View.layout(View.java:13754) 
                at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
                at android.view.View.layout(View.java:13754) 
                at android.view.ViewGroup.layout(ViewGroup.java:4362) 
                at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866) 
                at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687) 
                at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998) 
                at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212) 
                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
                at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
                at android.view.Choreographer.doFrame(Choreographer.java:525) 
                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
                at android.os.Handler.handleCallback(Handler.java:615) 
                at android.os.Handler.dispatchMessage(Handler.java:92) 
                at android.os.Looper.loop(Looper.java:137) 
                at android.app.ActivityThread.main(ActivityThread.java:4745) 
                at java.lang.reflect.Method.invokeNative(Native Method) 
                at java.lang.reflect.Method.invoke(Method.java:511) 
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                at dalvik.system.NativeStart.main(Native Method) 
                Caused by: java.lang.reflect.InvocationTargetException 
                at java.lang.reflect.Constructor.constructNative(Native Method) 
                at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
                at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
                at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)  
                at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)  
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)  
                at android.view.LayoutInflater.inflate(LayoutInflater.java:466)  
                at android.view.LayoutInflater.inflate(LayoutInflater.java:396)  
                at android.view.LayoutInflater.inflate(LayoutInflater.java:352)  
                at android.preference.Preference.onCreateView(Preference.java:480)  
                at android.preference.Preference.getView(Preference.java:451)  
                at android.preference.PreferenceGroupAdapter.getView(PreferenceGroupAdapter.java:221)  
                at android.widget.AbsListView.obtainView(AbsListView.java:2267)  
                at android.widget.ListView.makeAndAddView(ListView.java:1769)  
                at android.widget.ListView.fillDown(ListView.java:672)  
                at android.widget.ListView.fillFromTop(ListView.java:733)  
                at android.widget.ListView.layoutChildren(ListView.java:1608)  
                at android.widget.AbsListView.onLayout(AbsListView.java:2102)  
                at android.view.View.layout(View.java:13754)  
                at android.view.ViewGroup.layout(ViewGroup.java:4362)  
                at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)  
                at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)  
                at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)  
                at android.view.View.layout(View.java:13754)  
                at android.view.ViewGroup.layout(ViewGroup.java:4362)  
                at android.widget.FrameLayout.onLayout(FrameLayout.java:448)  
                at android.view.View.layout(View.java:13754)  
                at android.view.ViewGroup.layout(ViewGroup.java:4362)  
                at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1649)  
                at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1507)  
                at android.widget.LinearLayout.onLayout(LinearLayout.java:1420)  
                at android.view.View.layout(View.java:13754)  
                at android.view.ViewGroup.layout(ViewGroup.java:4362)  
                at android.widget.FrameLayout.onLayout(FrameLayout.java:448)  
                at android.view.View.layout(View.java:13754)  
                at android.view.ViewGroup.layout(ViewGroup.java:4362)  
                at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1866)  
                at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1687)  
                at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)  
                at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)  
                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)  
                at android.view.Choreographer.doCallbacks(Choreographer.java:555)  
                at android.view.Choreographer.doFrame(Choreographer.java:525)  
                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)  
                at android.os.Handler.handleCallback(Handler.java:615)  
                at android.os.Handler.dispatchMessage(Handler.java:92)  
                at android.os.Looper.loop(Looper.java:137)  
                at android.app.ActivityThread.main(ActivityThread.java:4745)  
                at java.lang.reflect.Method.invokeNative(Native Method)  
                at java.lang.reflect.Method.invoke(Method.java:511)  
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)  
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)  
                at dalvik.system.NativeStart.main(Native Method)  
                Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_btn_check_material.xml from drawable resource ID #0x7f020003 
                at android.content.res.Resources.loadDrawable(Resources.java:1918) 
                at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
                at android.widget.CompoundButton.<init>(CompoundButton.java:74) 
                at android.widget.CheckBox.<init>(CheckBox.java:68) 
                at android.widget.CheckBox.<init>(C 
+1

mam ten sam problem. Wygląda na to, że jest to błąd w appcompat 23.2.0. Zobacz także http://stackoverflow.com/questions/35618098/android-support-libraries-23-2-0-cause-app-to-crash?rq=1 – Valelik

+0

Dziękuję za to pytanie i aktualizację. Zaoszczędziłam wiele czasu i wysiłku, śledząc ten sam problem. Dla informacji dostępna jest teraz wersja bibliotek wsparcia (23.2.1), w których problem znika. – SimonH

Odpowiedz

0

Co pomogło mi rozszerza AppCompatActivity insted Aktywny w moim ekranie preferencji

+1

Rozszerzam PreferenceActivity, więc nie mogę naprawdę rozszerzyć 'AppCompatActivity', nie sądzę – StuStirling

0

Jak używasz biblioteki wsparcia, zakładam, że nie ma problemu, jeśli używasz AppCompatCheckbox zamiast standardu raz.

Możesz to zrobić z niestandardowym układem, który jest prawie taki sam jak standardowy, ale zastępuje wersję Checkbox wersją .

Ponieważ nie używamy już standardowego układu Checkbox, w którym wystąpił błąd, katastrofa już nie występuje.

Preferuję tę metodę, nawet jeśli biblioteka pomocnicza działa poprawnie, ponieważ pozwala mi zastąpić AppCompatCheckbox z AppCompatRadioButton, gdy zajdzie taka potrzeba.

PreferenceScreen xml:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <CheckBoxPreference android:layout="@layout/custom_checkbox_pref" android:key="whatever" android:title="The Title"/> 

</PreferenceScreen> 

Układ: custom_checkbox_pref.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_vertical" 
      android:minHeight="?android:attr/listPreferredItemHeight" 
      android:paddingEnd="?android:attr/scrollbarSize" 
      tools:ignore="RtlSymmetry"> 

<RelativeLayout 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="6dp" 
    android:layout_marginEnd="6dp" 
    android:layout_marginStart="15dp" 
    android:layout_marginTop="6dp" 
    android:layout_weight="1"> 

    <TextView 
     android:id="@android:id/title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ellipsize="marquee" 
     android:fadingEdge="horizontal" 
     android:singleLine="true" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     tools:text="Title"/> 

    <TextView 
     android:id="@android:id/summary" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignStart="@android:id/title" 
     android:layout_below="@android:id/title" 
     android:maxLines="4" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     tools:text="Summary"/> 

</RelativeLayout> 

<android.support.v7.widget.AppCompatCheckBox 
    android:id="@+android:id/checkbox" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" 
    android:clickable="false" 
    android:focusable="false"/> 

</LinearLayout>