2016-03-01 16 views
6

Tôi chưa thay đổi bất cứ điều gì liên quan đến cài đặt của tôi giữa phiên bản này và phiên bản cuối cùng hoạt động.Thư viện hỗ trợ nâng cấp lên 23.2.0 và ResourceNotFoundException Sử dụng CheckBoxPreference của PreferenceFragmen

Sự cố xảy ra trên API 16 trong khi API 23 hoạt động tốt. Đây là trong Genymotion. Tôi không có thiết bị thực thấp hơn có thể truy cập.

EDIT - Tôi đã thử nghiệm trên Sony Xperia U chạy 4.0.4 và xảy ra sự cố tương tự.

Tôi tin rằng tôi đã theo dõi nó xuống là do nâng cấp các thư viện hỗ trợ lên 23.2.0 vì tôi đã bị hạ cấp và hoạt động lại.

Bất kỳ ai khác trải nghiệm điều này?

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

Tôi có cùng một vấn đề. Nó có vẻ là một lỗi trong appcompat 23.2.0. Xem thêm http://stackoverflow.com/questions/35618098/android-support-libraries-23-2-0-cause-app-to-crash?rq=1 – Valelik

+0

Cảm ơn câu hỏi và cập nhật này. Đã dành cho tôi rất nhiều thời gian và công sức để theo dõi cùng một vấn đề. Để biết thông tin bây giờ là một phiên bản của các thư viện hỗ trợ (23.2.1) trong đó vấn đề biến mất. – SimonH

Trả lời

0

gì giúp tôi được mở rộng AppCompatActivity insted của hoạt động trong màn hình sở thích của tôi

+1

Tôi mở rộng PreferenceActivity để tôi không thể mở rộng 'AppCompatActivity' tôi không nghĩ – StuStirling

0

Khi bạn đang sử dụng thư viện hỗ trợ, tôi cho rằng không có vấn đề nếu bạn sử dụng AppCompatCheckbox thay vì tiêu chuẩn một lần.

Bạn có thể thực hiện việc này với bố cục tùy chỉnh khá giống với bố cục tùy chỉnh nhưng thay thế Checkbox bằng phiên bản AppCompat.

Vì chúng tôi không còn sử dụng bố cục Hộp kiểm tiêu chuẩn nơi xảy ra lỗi nên sự cố không còn xảy ra nữa.

Tôi thích phương pháp này ngay cả khi thư viện hỗ trợ hoạt động chính xác vì nó cho phép tôi thay thế AppCompatCheckbox bằng số AppCompatRadioButton khi cần.

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> 

Layout: 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> 
Các vấn đề liên quan