You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 8.1.0(Nexus 5X)ImageView加载崩溃问题求助

Android 8.1.0 Nexus 5X上的启动屏图标资源找不到崩溃问题

我的应用图标带有渐变效果,并且使用了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启动屏中的图标不够清晰(相比矢量图有明显模糊)。

项目的SDK版本配置:

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)

恳请各位提供调试方面的帮助。

内容的提问来源于stack exchange,提问作者hushed_voice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:18:09