Resources$NotFoundException for Vivo 设备上的几个可绘制对象



我主要在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可绘制对象,我遇到了此崩溃。

堆栈跟踪

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

由 android.content.res.Resources$NotFoundException: 无法 查找资源 ID #0x7f08013d at android.content.res.ResourcesImpl.getResourceName(ResourcesImpl.java:292) at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:879) at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:749) at android.content.res.Resources.loadDrawable(Resources.java:922) at android.content.res.TypedArray.getDrawableForDensity(TypedArray.java:953) at android.content.res.TypedArray.getDrawable(TypedArray.java:928) 在android.widget.ImageView。(图片浏览.java:188) 在android.widget.ImageView。(图片浏览.java:171) at androidx.appcompat.widget.AppCompatImageView.(AppCompatImageView.java:72) at androidx.appcompat.widget.AppCompatImageView.(AppCompatImageView.java:68) at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:187) at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:107) at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266) at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:817) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:775) at android.view.LayoutInflater.rInflate(LayoutInflater.java:908) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:869) at android.view.LayoutInflater.inflate(LayoutInflater.java:521) at android.view.LayoutInflater.inflate(LayoutInflater.java:429) at android.view.LayoutInflater.inflate(LayoutInflater.java:380) at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469) at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:141) at com.myapp.ui.splashScreen.SplashScreenActivity.onCreate(SplashScreenActivity.java:81) at android.app.Activity.performCreate(Activity.java:7129) at android.app.Activity.performCreate(Activity.java:7120) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2906) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3031) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1732) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:192) at android.app.ActivityThread.main(ActivityThread.java:6792) 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:826)

我几乎只在 Vivo 手机上遇到了同样的问题,然后我将图像添加到 noDpi 中并解决了它。