【发布时间】:2019-09-11 11:13:35
【问题描述】:
我主要在 Vivo 设备上收到 Resources$NotFoundException。这只发生在可绘制资源上。我有从 mdpi 到 xxxhdpi 的所有变体。所有这些都是png。我无法复制它,只能在 4 个不同的地方进行生产。其中 2 个在初始屏幕中,1 个在 this line 上的 facebook 登录库中,用于 this drawable。这意味着这些用户无法进入应用程序。知道是否需要对这些设备进行一些特殊处理吗?我以前从未遇到过这样的事情。
示例代码
<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 引起:无法 查找资源 ID #0x7f08013d 在 android.content.res.ResourcesImpl.getResourceName(ResourcesImpl.java:292) 在 android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:879) 在 android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:749) 在 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) 在 androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:817) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.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)
【问题讨论】:
-
我认为由于您在可绘制文件夹中没有该可绘制对象,因此会给您错误
-
如果你将drawable添加到不同的文件夹,那么它也应该在drawable文件夹中
-
@primo 你说的不是 mdpi-xxxdpi 文件夹。我还需要将我的drawables放在drawable文件夹中吗?有没有推荐这个的文档?
-
@primo 尝试了您的答案。不工作。只有 vivo 手机会显示此错误。
-
出现问题的 Android 版本是什么?如果您使用
VectorDrawable,那么为了向后兼容,请尝试以这种方式加载图像:AppCompatResources.getDrawable(getContext(), R.drawable.your_vector_image);但恐怕这对 SDK 中的 facebook 图像没有帮助。
标签: android android-drawable android-resources