首页 > 解决方案 > 对于 Vivo 设备上的几个 Drawable,Resources$NotFoundException

问题描述

我主要在 Vivo 设备上获得 Resources$NotFoundException。这只发生在可绘制资源上。我有从 mdpi 到 xxxhdpi 的所有变体。所有这些都是png。我无法复制它,只能在 4 个不同的地方进行生产。其中 2 个在初始屏幕中,1 个在此可绘制对象的这条线上的facebook 登录库中。这意味着这些用户无法进入应用程序。知道是否需要对这些设备进行一些特殊处理吗?我以前从未遇到过这样的事情。

示例代码

<androidx.appcompat.widget.AppCompatImageView
        android:id="@+id/image_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="0dp"
        android:adjustViewBounds="true"
        app:srcCompat="@drawable/splash"
        app:layout_constraintWidth_max="400dp"
        app:layout_constraintBottom_toTopOf="@+id/white_bg"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        tools:src="@drawable/splash"/>

splash由于Drawable ,我在这里遇到了这个崩溃。

堆栈跟踪

由 android.content.res.Resources$NotFoundException 导致无法找到资源 ID #0x7f08013d com.myapp.ui.splashScreen.SplashScreenActivity.onCreate

由 android.content.res.Resources$NotFoundException 引起:无法在 android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java) 的 android.content.res.ResourcesImpl.getResourceName(ResourcesImpl.java:292) 中找到资源 ID #0x7f08013d :879) 在 android.content.res.Resources.loadDrawable(Resources.java:922) 在 android.content.res.TypedArray.getDrawableForDensity(TypedArray. java:953) 在 android.content.res.TypedArray.getDrawable(TypedArray.java:928) 在 android.widget.ImageView.(ImageView.java:188) 在 android.widget.ImageView.(ImageView.java:171) 在androidx.appcompat.widget.AppCompatImageView.(AppCompatImageView.java:72) 在 androidx.appcompat.widget.AppCompatImageView。(AppCompatImageView.java:68) 在 androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:187) 在 androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:107) 在 androidx.appcompat.app.AppCompatDelegateImpl。 createView(AppCompatDelegateImpl.java:1266) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:817) 在 androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316) .java:775) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:908) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:869) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:521)在 android.view。LayoutInflater.inflate(LayoutInflater.java:429) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:380) 在 androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) 在 androidx.appcompat.app.AppCompatActivity .setContentView(AppCompatActivity.java:141) 在 com.myapp.ui.splashScreen.SplashScreenActivity.onCreate(SplashScreenActivity.java:81) 在 android.app.Activity.performCreate(Activity.java:7129) 在 android.app.Activity。 performCreate(Activity.java:7120) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2906) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java :3031) 在 android.app.ActivityThread。-wrap11(ActivityThread.java) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1732) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper. java:192) 在 android.app.ActivityThread.main(ActivityThread.java:6792) 在 java.lang.reflect.Method.invoke(Method.java) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit .java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826) 的 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 调用(Method.java)在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826) 的 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 调用(Method.java)

标签: androidandroid-drawableandroid-resources

解决方案


我几乎完全对 Vivo 手机有同样的问题,然后我将图像添加到 noDpi 并解决了它。


推荐阅读