Android 尝试读取 res/drawable-nodpi-v4/ 中的图像,但该目录在我的项目中不存在

Android trying to read image in res/drawable-nodpi-v4/ but that directory doesn't exist in my project

提问人:Kenny Wyland 提问时间:10/21/2023 更新时间:10/21/2023 访问量:19

问:

Crashlytics 告诉我,我的应用程序在尝试膨胀特定布局时崩溃了,因为它在 .image_uparrow.xmlres/drawable-nodpi-v4/

但是我没有目录。在我的整个项目中,唯一的版本是没有 .res/drawable-nodpi-v4/image_uparrow.xmlres/drawable-nodpi/-v4

这是一个(奇怪的)只有一个条目(一定是旧的重构工件或其他东西)。image_uparrow.xmlselector

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:drawable="@drawable/uparrow" /> <!-- default -->
 </selector>

并有两种可能性:@drawable/uparrow

  • res/drawable-mdpi/uparrow.png
  • res/drawable-hdpi/uparrow.png

那么,除了只有一个项目的奇怪之处之外,为什么当我的项目中根本没有那个目录时,系统会尝试打开一个文件呢?selectorres/drawable-nodpi-v4


下面是崩溃堆栈跟踪:

Fatal Exception: android.view.InflateException: Binary XML file line #10 in com.inadaydevelopment.cashcalculator:layout/deletereorder_cell: Binary XML file line #10 in com.inadaydevelopment.cashcalculator:layout/deletereorder_cell: Error inflating class ImageButton

Caused by android.view.InflateException: Binary XML file line #10 in com.inadaydevelopment.cashcalculator:layout/deletereorder_cell: Error inflating class ImageButton

Caused by android.content.res.Resources$NotFoundException: Drawable com.inadaydevelopment.cashcalculator:drawable/image_uparrow with resource ID #0x7f0800d0

Caused by android.content.res.Resources$NotFoundException: File res/drawable-nodpi-v4/image_uparrow.xml from drawable resource ID #0x7f0800d0
       at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:874)
       at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:668)
       at android.content.res.Resources.loadDrawable(Resources.java:993)
       at android.content.res.TypedArray.getDrawableForDensity(TypedArray.java:1007)
       at android.content.res.TypedArray.getDrawable(TypedArray.java:982)
       at android.widget.ImageView.<init>(ImageView.java:204)
       at android.widget.ImageButton.<init>(ImageButton.java:86)
       at android.widget.ImageButton.<init>(ImageButton.java:82)
       at androidx.appcompat.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:78)
       at androidx.appcompat.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:73)
       at androidx.appcompat.app.AppCompatViewInflater.createImageButton(AppCompatViewInflater.java:253)
       at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:168)
       at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1678)
       at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1729)
       at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1065)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1001)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:965)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:1127)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1088)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:686)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:538)
       at com.inadaydevelopment.cashcalculator.CashFlowActivity.addCashFlowRow(CashFlowActivity.java:349)
       at com.inadaydevelopment.cashcalculator.CashFlowActivity.addAllCashFlowRows(CashFlowActivity.java:212)
       at com.inadaydevelopment.cashcalculator.CashFlowActivity.touchedDeleteReorderButton(CashFlowActivity.java:201)
       at com.inadaydevelopment.cashcalculator.CashFlowActivity.onOptionsItemSelected(CashFlowActivity.java:126)
       at android.app.Activity.onMenuItemSelected(Activity.java:4343)
       at ...

布局 xml 中出现问题的部分是:

<ImageButton
    android:id="@+id/upButton"
    style="@style/Cashflow.ReorderButton.Up"
    android:layout_alignParentStart="true"
    android:contentDescription="@string/move_row_up" />

下面是引用的样式,这是定义图像的位置:

<style name="Cashflow.ReorderButton.Up">
    <item name="android:src">@drawable/image_uparrow</item>
</style>
xml android-layout android-resources

评论

0赞 jdweng 10/21/2023
这看起来与我一直在写的另一个帖子非常相似:stackoverflow.com/questions/77323494/......这两个帖子在 android 中夸大图像时都存在问题。另一个帖子看起来存在问题,将一种图像类型转换为另一种类型。

答: 暂无答案