应用程序崩溃在LayoutInflater [在MIUI设备上]

时间:2018-01-13 18:00:03

标签: android

我已经部署了Android应用程序,并且崩溃报告表明该应用程序无法在MIUI设备上启动。我在MainActivity中遇到布局异常。添加了崩溃报告:

java.lang.RuntimeException: 
      at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2200)
      at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2249)
      at android.app.ActivityThread.access$800 (ActivityThread.java:141)
      at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1212)
      at android.os.Handler.dispatchMessage (Handler.java:102)
      at android.os.Looper.loop (Looper.java:136)
      at android.app.ActivityThread.main (ActivityThread.java:5113)
      at java.lang.reflect.Method.invokeNative (Native Method)
      at java.lang.reflect.Method.invoke (Method.java:515)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:796)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:612)
      at dalvik.system.NativeStart.main (Native Method)
    Caused by: android.view.InflateException: 
      at android.view.LayoutInflater.createView (LayoutInflater.java:623)
      at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java:56)
      at android.view.LayoutInflater.onCreateView (LayoutInflater.java:672)
      at android.view.LayoutInflater.createViewFromTag (LayoutInflater.java:697)
      at android.view.LayoutInflater.rInflate (LayoutInflater.java:758)
      at android.view.LayoutInflater.inflate (LayoutInflater.java:495)
      at android.view.LayoutInflater.inflate (LayoutInflater.java:400)
      at android.view.LayoutInflater.inflate (LayoutInflater.java:353)
      at android.support.v7.app.AppCompatDelegateImplV9.setContentView (AppCompatDelegateImplV9.java:287)
      at android.support.v7.app.AppCompatActivity.setContentView (AppCompatActivity.java:139)
      at com.studio.sanjeev.shhsilence.MainActivity.onCreate (MainActivity.java:76)
      at android.app.Activity.performCreate (Activity.java:5242)
      at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087)
      at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2164)
    Caused by: java.lang.reflect.InvocationTargetException: 
      at java.lang.reflect.Constructor.constructNative (Native Method)
      at java.lang.reflect.Constructor.newInstance (Constructor.java:423)
      at android.view.LayoutInflater.createView (LayoutInflater.java:597)
    Caused by: android.content.res.Resources$NotFoundException: 
      at android.content.res.Resources.loadDrawable (Resources.java:2139)
      at android.content.res.MiuiResources.loadDrawable (MiuiResources.java:393)
      at android.content.res.Resources.loadDrawable (Resources.java:2062)
      at android.content.res.TypedArray.getDrawable (TypedArray.java:602)
      at android.view.View.<init> (View.java:3558)
      at android.widget.TextView.<init> (TextView.java:623)
      at android.widget.Button.<init> (Button.java:107)
      at android.widget.CompoundButton.<init> (CompoundButton.java:68)
      at android.widget.ToggleButton.<init> (ToggleButton.java:51)
      at android.widget.ToggleButton.<init> (ToggleButton.java:64)
    Caused by: android.content.res.Resources$NotFoundException: 
      at android.content.res.Resources.loadDrawable (Resources.java:2139)
      at android.content.res.MiuiResources.loadDrawable (MiuiResources.java:393)
      at android.content.res.Resources.loadDrawable (Resources.java:2062)
      at android.content.res.Resources.getDrawable (Resources.java:710)
      at android.graphics.drawable.StateListDrawable.inflate (StateListDrawable.java:176)
      at android.graphics.drawable.Drawable.createFromXmlInner (Drawable.java:939)
      at android.graphics.drawable.Drawable.createFromXml (Drawable.java:879)
      at android.content.res.Resources.createFromXml (Resources.java:2515)
      at android.content.res.Resources.loadDrawable (Resources.java:2135)
    Caused by: org.xmlpull.v1.XmlPullParserException: 
      at android.graphics.drawable.Drawable.createFromXmlInner (Drawable.java:935)
      at android.graphics.drawable.Drawable.createFromXml (Drawable.java:879)
      at android.content.res.Resources.createFromXml (Resources.java:2515)
      at android.content.res.Resources.loadDrawable (Resources.java:2135)

MainActivity上的第76行是

73: @Override
74: protected void onCreate(Bundle savedInstanceState) {
75:    super.onCreate(savedInstanceState);
76:    setContentView(R.layout.activity_main);

我研究过LayoutInflater,主要是在内存不足的情况下出现,而我的activity_main没有这样的问题。我在切换按钮中使用矢量可绘制图像:

<ToggleButton
    android:id="@+id/power"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:textOff=""
    android:textOn=""
    android:background="@drawable/check"
    app:layout_constraintBottom_toTopOf="@+id/adView"
    app:layout_constraintDimensionRatio="1:1"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

check是一个选择器,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/poweron"
        android:state_checked="true" />
    <item android:drawable="@drawable/poweroff"
        android:state_checked="false"/>
</selector>

我想知道究竟是什么影响了我的应用的MIUI用户,以及如何尽快修复它。

0 个答案:

没有答案