提问人:Kenny Wyland 提问时间:10/21/2023 更新时间:10/21/2023 访问量:19
Android 尝试读取 res/drawable-nodpi-v4/ 中的图像,但该目录在我的项目中不存在
Android trying to read image in res/drawable-nodpi-v4/ but that directory doesn't exist in my project
问:
Crashlytics 告诉我,我的应用程序在尝试膨胀特定布局时崩溃了,因为它在 .image_uparrow.xml
res/drawable-nodpi-v4/
但是我没有目录。在我的整个项目中,唯一的版本是没有 .res/drawable-nodpi-v4/
image_uparrow.xml
res/drawable-nodpi/
-v4
这是一个(奇怪的)只有一个条目(一定是旧的重构工件或其他东西)。image_uparrow.xml
selector
<?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
那么,除了只有一个项目的奇怪之处之外,为什么当我的项目中根本没有那个目录时,系统会尝试打开一个文件呢?selector
res/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>
答: 暂无答案
评论