Spinner - 使用AppCompat时出现膨胀异常问题

4
我已经实现了一款用于阅读书籍的Android应用程序。我的应用有两种模式-白天夜晚
对于白天模式,我使用的主题的父亲是@style/Theme.AppCompat.Light.NoActionBar。 对于夜间模式,父亲是@style/Theme.AppCompat.NoActionBar
在第一种模式(白天)中,一切正常。但是当用户将模式更改为夜晚时,我遇到了一个问题,我的片段中放置了Spinner。 在切换到夜晚模式后,我立即看到以下异常:
java.lang.RuntimeException: Unable to start activity ComponentInfo{cz.company.media/cz.comapy.reader.activity.reader.ReadingActivity}: android.view.InflateException: Binary XML file line #19: Error inflating class <unknown>
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3119)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5111)
     at android.app.ActivityThread.access$1100(ActivityThread.java:198)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1682)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:145)
     at android.app.ActivityThread.main(ActivityThread.java:6837)
     at java.lang.reflect.Method.invoke(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:372)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
  Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class <unknown>
     at android.view.LayoutInflater.createView(LayoutInflater.java:640)
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750)
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:821)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:511)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:415)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:366)

我发现在第19行的布局中有一个Spinner。我针对SDK版本22进行了定位。我的所有活动都是从AppCompatActivity扩展而来,我的所有对话框都是从AppCompatDialogFragment扩展而来。我还尝试将Spinner更改为AppCompatSpinner,但没有效果。
很奇怪,这只在三星Galaxy S6设备上的Android 5.1.1系统中出现过。
我在其他设备上进行了测试,如Nexus 5、三星Galaxy S4、Motorola Xoom、Xperia Z2平板电脑等,它们都完全正常工作。
有人有什么想法,可能出了什么问题吗?
更新:在我的xml文件的第19行是以下内容:
<android.support.v7.widget.AppCompatSpinner [this is line 19]
        android:id="@+id/spinner_display_settings_motif"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/display_setting_motif_types"/>

我也尝试使用传统的Spinner,但效果相同。


1
我自己也遇到了许多默认(黑色)主题的问题,你尝试过android:theme="@style/ThemeOverlay.AppCompat.Dark"吗? - Markus Rubey
@MarkusRubey 我正在使用工具栏,所以我想我不能使用这个主题。 - PetrS
如果您的活动专门扩展了ActionBarActivity并且主题是用于没有操作栏的活动,则可能会导致崩溃。通常,如果由于主题更改而缺少任何内容或缺少任何内容,则可能会发生崩溃。AppCompatActivity已过时,因此如果主题仅支持新主题,则可能会出现问题。 - Eae
XML的第19行是什么? - Eae
如果活动的构造函数或控件(如Spinner)的类需要添加AttributeSet参数,则也可能会发生此类型的异常。 - Eae
显示剩余2条评论
1个回答

1

如果您的样式/主题中没有,请尝试检查:

<item name="android:src">something</item>

这可能会导致这种问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接