Spinner - 使用 AppCompat 时会引发异常
Spinner - inflate exception when using AppCompat
我已经实现了 Android 读书申请。我的应用程序有两种模式 - day 和 night。
对于 day 模式,我使用主题,其父级设置为 @style/Theme.AppCompat.Light.NoActionBar
。对于 night 模式,父级是 @style/Theme.AppCompat.NoActionBar
.
在第一种模式下(天)一切正常。但是当用户将模式更改为 night 时会出现问题。我的 Spinner
有问题,它位于我的片段中。将模式更改为 night 后,我立即看到以下异常:
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.access00(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
,但是没有效果。
而且很奇怪,我只在 Android 5.1.1 的三星 Galaxy S6 设备上发生过这种情况。
我在 Nexus 5、Samsung 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
,但都是一样的。
尝试检查一下,如果您的风格/主题中没有:
<item name="android:src">something</item>
这可能会导致此类问题。
我已经实现了 Android 读书申请。我的应用程序有两种模式 - day 和 night。
对于 day 模式,我使用主题,其父级设置为 @style/Theme.AppCompat.Light.NoActionBar
。对于 night 模式,父级是 @style/Theme.AppCompat.NoActionBar
.
在第一种模式下(天)一切正常。但是当用户将模式更改为 night 时会出现问题。我的 Spinner
有问题,它位于我的片段中。将模式更改为 night 后,我立即看到以下异常:
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.access00(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
,但是没有效果。
而且很奇怪,我只在 Android 5.1.1 的三星 Galaxy S6 设备上发生过这种情况。
我在 Nexus 5、Samsung 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
,但都是一样的。
尝试检查一下,如果您的风格/主题中没有:
<item name="android:src">something</item>
这可能会导致此类问题。