android.view.InflateException:二进制 XML 文件错误膨胀类 ImageView

问题描述 投票:0回答:0

这该死的车祸快把我逼疯了。我的应用程序图标有渐变,并且我正在使用 Android 12 初始屏幕。 99% 的崩溃发生在运行 Android 8.1.0 的 Nexus 5x 上。我尽力在模拟器中复制它,但它没有显示出来。

这是我的drawable-v23和drawable-v24中唯一的东西。这是当我使用 Android Studio->资源管理器-> ImageAsset 添加启动器图标时自动生成的。

由于我的图标有渐变,我在 v23 中使用 PNG 而不是像这样的矢量更新了它:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:width="@dimen/dp200"
        android:height="@dimen/dp200"
        android:gravity="center">
        <inset
            android:drawable="@drawable/ic_logo"
            android:insetLeft="@dimen/dp27"
            android:insetTop="@dimen/dp16"
            android:insetRight="@dimen/dp27"
            android:insetBottom="@dimen/dp17" />
    </item>
</layer-list>

如果我不这样做,它会在 Android 23 的模拟器中崩溃并出现相同的错误。我想用 PNG 图像而不是矢量完全替换图标。但在 Android 12 启动画面中就不那么清晰了(与矢量相比有点明显模糊)

minSdkVersion 23
targetSdkVersion 33

这是我在 Crashlytics 中看到的崩溃:

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.android/com.xxx.android.presentation.ui.login.view.LoginActivity}: android.view.InflateException: Binary XML file line #28: Binary XML file line #28: Error inflating class ImageView
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
       at android.app.ActivityThread.-wrap11()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6494)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Caused by android.content.res.Resources$NotFoundException: Resource ID #0x7f0802ff
       at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:215)
       at android.content.res.Resources.getValue(Resources.java:1316)
       at androidx.appcompat.widget.ResourceManagerInternal.createDrawableIfNeeded(ResourceManagerInternal.java:18)
       at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:2)
       at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:1)
       at androidx.appcompat.content.res.AppCompatResources.getDrawable(:4)
       at androidx.appcompat.widget.AppCompatImageHelper.loadFromAttributes(:53)
       at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:3)
       at androidx.appcompat.widget.AppCompatImageView.<init>(AppCompatImageView.java:2)
       at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:2)
       at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:2)
       at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:148)
       at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1)
       at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
       at androidx.databinding.DataBindingUtil.inflate(DataBindingUtil.java:14)
       at androidx.databinding.ViewDataBinding.u(ViewDataBinding.java:3)
       at com.xxx.android.databinding.FragmentLoginBinding.inflate(FragmentLoginBinding.java:7)
       at com.xxx.android.databinding.FragmentLoginBinding.inflate(FragmentLoginBinding.java:7)
       at com.xxx.android.presentation.ui.login.view.LoginFragment$bindingInflater$1.invoke(LoginFragment.java:16)
       at com.xxx.android.presentation.ui.login.view.LoginFragment$bindingInflater$1.invoke(LoginFragment.java:16)
       at com.xxx.android.presentation.ui.base.BaseFragment.onCreateView(BaseFragment.java:12)
       at androidx.fragment.app.Fragment.performCreateView(Fragment.java:25)
       at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:175)
       at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:149)
       at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:30)
       at androidx.fragment.app.FragmentManager.D0(FragmentManager.java:28)
       at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:9)
       at androidx.fragment.app.FragmentManager.dispatchViewCreated(FragmentManager.java:1)
       at androidx.fragment.app.Fragment.performViewCreated(Fragment.java:19)
       at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:260)
       at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:149)
       at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:30)
       at androidx.fragment.app.FragmentManager.D0(FragmentManager.java:28)
       at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:9)
       at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:11)
       at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:4)
       at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:20)
       at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java)
       at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1334)
       at android.app.Activity.performStart(Activity.java:7029)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2741)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
       at android.app.ActivityThread.-wrap11()
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6494)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

任何调试此问题的帮助将不胜感激。

android vector gradient
© www.soinside.com 2019 - 2024. All rights reserved.