鍍金池/ 問答/Android  HTML/ 安卓5.1報android.view.InflateException異常怎么解

安卓5.1報android.view.InflateException異常怎么解決?

我利用View來作為一條分割線,在安卓7.0以上版本測試程序正常,但在安卓5.1程序卻奔潰.

    <View
        android:id="@+id/tool_bar_shadow"
        android:layout_width="match_parent"
        android:layout_height="4dp"
        android:layout_below="@+id/toolbar"
        android:background="@drawable/tool_bar_shadow">
    </View>

異常:

android.view.InflateException: Binary XML file line #24: Error inflating class android.view.View

具體異常:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.krehizi.lightnote/com.example.krehizi.lightnote.MainActivity}: android.view.InflateException: Binary XML file line #24: Error inflating class android.view.View
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
        at android.app.ActivityThread.access$800(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        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:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: android.view.InflateException: Binary XML file line #24: Error inflating class android.view.View
        at android.view.LayoutInflater.createView(LayoutInflater.java:633)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:665)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:65)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at com.example.krehizi.lightnote.MainActivity.onCreate(MainActivity.java:33)
        at android.app.Activity.performCreate(Activity.java:5990)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)?
        at android.app.ActivityThread.access$800(ActivityThread.java:151)?
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)?
        at android.os.Handler.dispatchMessage(Handler.java:102)?
        at android.os.Looper.loop(Looper.java:135)?
        at android.app.ActivityThread.main(ActivityThread.java:5254)?
        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:903)?
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)?
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
        at android.view.LayoutInflater.createView(LayoutInflater.java:607)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:665)?
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:65)?
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)?
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)?
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:365)?
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)?
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)?
        at com.example.krehizi.lightnote.MainActivity.onCreate(MainActivity.java:33)?
        at android.app.Activity.performCreate(Activity.java:5990)?
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)?
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)?
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)?
        at android.app.ActivityThread.access$800(ActivityThread.java:151)?
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)?
        at android.os.Handler.dispatchMessage(Handler.java:102)?
        at android.os.Looper.loop(Looper.java:135)?
        at android.app.ActivityThread.main(ActivityThread.java:5254)?
        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:903)?
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)?
     Caused by: android.content.res.Resources$NotFoundException: Resource "com.example.krehizi.lightnote:drawable/tool_bar_shadow" (7f070077)  is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f070077 a=-1 r=0x7f070077}
        at android.content.res.Resources.loadDrawableForCookie(Resources.java:2441)
        at android.content.res.Resources.loadDrawable(Resources.java:2381)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
        at android.view.View.<init>(View.java:3737)
        at android.view.View.<init>(View.java:3645)
        at android.view.View.<init>(View.java:3624)
        at java.lang.reflect.Constructor.newInstance(Native Method)?
        at java.lang.reflect.Constructor.newInstance(Constructor.java:288)?
        at android.view.LayoutInflater.createView(LayoutInflater.java:607)?
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:665)?
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:65)?
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)?
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)?
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:414)?
        at android.view.LayoutInflater.inflate(LayoutInflater.java:365)?
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)?
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)?
        at com.example.krehizi.lightnote.MainActivity.onCreate(MainActivity.java:33)?
        at android.app.Activity.performCreate(Activity.java:5990)?
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)?
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)?
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)?
        at android.app.ActivityThread.access$800(ActivityThread.java:151)?
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)?
        at android.os.Handler.dispatchMessage(Handler.java:102)?
        at android.os.Looper.loop(Looper.java:135)?
        at android.app.ActivityThread.main(ActivityThread.java:5254)?
        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:903)?
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)?
回答
編輯回答
久礙你

android:layout_below="@+id/toolbar" 有可能是這一行報錯的

2018年3月24日 11:47
編輯回答
款爺

找到原因了,是android:background="@drawable/tool_bar_shadow"這行有問題,我把tool_bar_shadow.xml放在了drawable-v24文件夾中導致異常,解決方法是再復制一份到drawable即可.

2018年7月30日 22:01