当前位置: 首页 > 知识库问答 >
问题:

ResourceNotFoundException导致类导航视图膨胀时出错

韩烈
2023-03-14

因此,我的日常用户中约有1%经常遇到NavigationView异常,这是由于找不到图像资源造成的。我觉得很奇怪,99%的其他用户都很好。我希望在版本迭代中更新依赖项可以解决这个问题,但不幸的是,这个错误已经在我的Crashlytics日志中保留了6次迭代,这是影响我的用户的最严重的崩溃。

显而易见的是,它只适用于较旧的设备,但这是一个错误的假设。它不是特定于设备的,也不是特定于版本的。尽管可以指出一些细节

  • Android版本
    • 90%Andorid 8
    • 10%Android7
    • 华为50%

    我使用的两个相关依赖项:

    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'com.google.android.material:material:1.0.0'
    

    XML布局中的相关代码:

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:theme="@style/ThemeOverlay.AppCompat.Light"
        app:headerLayout="@layout/layout_drawer_header2"
        app:menu="@menu/navigation" />
    

    标题布局:

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/authWrapper"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?android:attr/windowBackground"
        android:orientation="vertical"
        android:theme="@style/ThemeOverlay.AppCompat.Dark"
        tools:layout_width="240dp">
    
    
        <TextView
            android:id="@+id/number"
            style="@style/Base.TextAppearance.AppCompat.Display3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:layout_marginLeft="16dp"
            android:fontFamily="sans-serif-medium"
            android:textColor="?android:textColorPrimary"
            android:textStyle="italic"
            app:layout_constraintBottom_toBottomOf="@+id/car"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="@+id/driver"
            tools:text="#01" />
    
        <ImageView
            android:id="@+id/driverIcon"
            android:layout_width="12dp"
            android:layout_height="12dp"
            android:layout_marginStart="4dp"
            android:layout_marginLeft="4dp"
            app:layout_constraintBottom_toBottomOf="@+id/driver"
            app:layout_constraintStart_toEndOf="@+id/number"
            app:layout_constraintTop_toTopOf="@+id/driver"
            app:srcCompat="@drawable/ic_person_white_24dp" />
    
    
        <TextView
            android:id="@+id/driver"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="2dp"
            android:layout_marginStart="4dp"
            android:layout_marginLeft="4dp"
            android:layout_marginRight="2dp"
            android:layout_marginTop="16dp"
            android:drawablePadding="8dp"
            android:ellipsize="end"
            android:lines="1"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Body1"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/driverIcon"
            app:layout_constraintTop_toTopOf="parent"
            tools:text="Drivers name" />
    
        <ImageView
            android:id="@+id/coDriverIcon"
            android:layout_width="12dp"
            android:layout_height="12dp"
            android:layout_marginStart="4dp"
            android:layout_marginLeft="4dp"
            app:layout_constraintBottom_toBottomOf="@+id/codriver"
            app:layout_constraintStart_toEndOf="@+id/number"
            app:layout_constraintTop_toTopOf="@+id/codriver"
            app:srcCompat="@drawable/ic_person_white_24dp" />
    
        <TextView
            android:id="@+id/codriver"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="2dp"
            android:layout_marginStart="4dp"
            android:layout_marginLeft="4dp"
            android:layout_marginRight="2dp"
            android:drawablePadding="8dp"
            android:ellipsize="end"
            android:lines="1"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Body1"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/coDriverIcon"
            app:layout_constraintTop_toBottomOf="@+id/driver"
            tools:text="Co-Driver name" />
    
        <ImageView
            android:id="@+id/carIcon"
            android:layout_width="12dp"
            android:layout_height="12dp"
            android:layout_marginStart="4dp"
            android:layout_marginLeft="4dp"
            app:layout_constraintBottom_toBottomOf="@+id/car"
            app:layout_constraintStart_toEndOf="@+id/number"
            app:layout_constraintTop_toTopOf="@+id/car"
            app:srcCompat="@drawable/ic_car_white_24dp" />
    
        <TextView
            android:id="@+id/car"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="2dp"
            android:layout_marginStart="4dp"
            android:layout_marginLeft="4dp"
            android:layout_marginRight="2dp"
            android:ellipsize="end"
            android:lines="1"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Body1"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/carIcon"
            app:layout_constraintTop_toBottomOf="@+id/codriver"
            tools:text="Racing Car" />
    
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone">
    
            <ImageView
                android:id="@+id/image"
                android:layout_width="72dp"
                android:layout_height="72dp"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                app:srcCompat="@drawable/ic_account_circle_white_24dp" />
    
            <ImageView
                android:id="@+id/logout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:padding="12dp"
                android:tint="@android:color/white"
                app:srcCompat="@drawable/ic_log_out" />
        </RelativeLayout>
    
        <TextView
            android:id="@+id/switchText"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="16dp"
            android:layout_marginRight="8dp"
            android:autoLink="web"
            android:gravity="center_vertical"
            android:maxLines="2"
            android:text="@string/track_me_on_racelivemaps_com"
            app:layout_constraintEnd_toStartOf="@+id/trackingOn"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/number" />
    
    
        <Switch
            android:layout_width="wrap_content"
            android:id="@+id/trackingOn"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:layout_height="wrap_content"
            android:padding="8dp"
            android:autoLink="web"
            android:gravity="center_vertical"
    
            android:maxLines="2"
            app:layout_constraintBottom_toBottomOf="@+id/switchText"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="@+id/switchText" />
    
    
        <TextView
            android:id="@+id/textView12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="16dp"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="8dp"
            android:text="@string/active_stage"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Body2"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/switchText" />
    
        <Spinner
            android:id="@+id/activeStage"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/textView12" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    

    菜单:

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:title="@string/mode">
            <menu>
                <group android:checkableBehavior="single">
    
                    <item
                        android:id="@+id/recce"
                        android:icon="@drawable/ic_write_black_24dp"
                        android:title="@string/reccemode" />
                    <item
                        android:id="@+id/liaison"
                        android:icon="@drawable/ic_route_black_24dp"
                        android:title="@string/liaisonmode" />
    
                    <item
                        android:id="@+id/racing"
                        android:icon="@drawable/ic_racing_flag_black_24dp"
                        android:title="@string/racemode" />
    
                    <item
                        android:id="@+id/tsd"
                        android:icon="@drawable/ic_timer_black_24dp"
                        android:title="@string/tsd" />
    
                    <item
                        android:id="@+id/tsd_advanced"
                        android:icon="@drawable/ic_tsd_advanced"
                        android:title="@string/tsd_advanced" />
    
                    <item
                        android:id="@+id/custom_1"
                        android:icon="@drawable/ic_navigation_layout"
                        android:title="@string/custom_layout_1" />
    
                    <item
                        android:id="@+id/custom_2"
                        android:icon="@drawable/ic_navigation_layout"
                        android:title="@string/custom_layout_2" />
    
                    <item
                        android:id="@+id/custom_3"
                        android:icon="@drawable/ic_navigation_layout"
                        android:title="@string/custom_layout_3" />
    
                </group>
            </menu>
        </item>
        <group android:checkableBehavior="none">
            <item
                android:id="@+id/stages"
                android:icon="@drawable/ic_stage_black_24dp"
                android:title="@string/special_stages" />
    
            <item
                android:id="@+id/settings"
                android:icon="@drawable/ic_settings_black_24dp"
                android:title="@string/settings" />
    
            <item
                android:id="@+id/customize_ui"
                android:icon="@drawable/ic_layout_edit"
                android:title="@string/customize_ui" />
    
            <item
                android:id="@+id/weather"
                android:icon="@drawable/ic_weather"
                android:title="@string/weather" />
    
            <item
                android:id="@+id/login"
                android:icon="@drawable/ic_key_white_24dp"
                android:title="@string/log_in" />
    
            <item
                android:id="@+id/manual"
                android:icon="@drawable/ic_manual"
                android:title="@string/user_manual" />
    
            <item
                android:id="@+id/language"
                android:icon="@drawable/ic_translate"
                android:title="@string/language" />
    
            <item
                android:id="@+id/invite"
                android:icon="@drawable/ic_share_black_24dp"
                android:title="@string/invite" />
    
            <item
                android:id="@+id/feedback"
                android:icon="@drawable/ic_feedback_black_24dp"
                android:title="@string/feedback_report_bug" />
    
            <item
                android:id="@+id/tester"
                android:icon="@drawable/ic_tester"
                android:title="@string/become_a_tester" />
    
            <item
                android:id="@+id/policy"
                android:icon="@drawable/ic_policy"
                android:title="@string/privacy_policy" />
    
            <item
                android:id="@+id/logoff"
                android:icon="@drawable/ic_key_white_24dp"
                android:title="@string/log_off" />
    
            <item
                android:id="@+id/exit"
                android:icon="@drawable/ic_exit_to_app_black_24dp"
                android:title="@string/exit" />
    
    
        </group>
    
    
    </menu>
    

    最后是坠机日志。

    android.view.膨胀异常:二进制XML文件行#48:二进制XML文件行#48:错误inflating类com.google.android.material.navigation.NavigationView在android.app.ActivityThread.perform启动活动(ActivityThread.java:3173)在android.app.ActivityThread.handle启动活动(ActivityThread.java:3284)在android.app.ActivityThread.-wrap12(未知来源)在android.app.ActivityThread$H. handleMessage(ActivityThread.java:1894)在android.os.Handler.dispatch消息(Handler.java:109)android.os.Looper.loop(Looper.java:166)android.app.ActivityThread.main(ActivityThread.java:7383)在com. android. interal. os.调用(method. java)。RuntimeInit$method odAndArgsCaller. run(RuntimeInit. java: 469)在com. android. interal. os。ZygoteInit. main(ZygoteInit. java: 963)

    由Android系统引起的。看法充气异常:二进制XML文件行#48:二进制XML文件行#48:错误充气类com.google.Android布料航行导航视图

    由Android系统引起的。看法充气异常:二进制XML文件行#48:充气类com时出错。谷歌。Android布料航行导航视图

    java.lang.reflect.引起的InvocationTarget异常java.lang.reflect.Constructor.newInstance0(Constructor.java)java.lang.reflect.Constructor.new实例(Constructor.java:334)android.view.LayoutI<--PLHD--8/>查看(LayoutInflater.java:658)在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:801)在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)在android.view.LayoutInflator. rInflate(LayoutInflater.java:874)在android.view.LayoutInflator. rInflate儿童(LayoutInflater.java:835)在android. view。膨胀(LayoutInflator. java: 515)在android. view.膨胀(LayoutInflator. java: 423)在android. view.膨胀(LayoutInflator. java: 374)在androidx. appcompat. app.在androidx. appcompat. app上查看(AppCompatMobateImp. java: 469)。AppCompatActive. setContentView(AppCompatActive. java: 140)at ee. siimplangi. rallytripmeter. active.在android. app.在android. app.在android. app.在android. app.在android. app上的ActivityThread. performLaunch活动(ActivityThread. java: 3126)。在android. app.wrap12(未知来源)在android. app.ActivityThread$H. handleMessage(ActivityThread. java: 1894)at android. os.在android. os.在android. app.ActivityThread. main(ActivityThread. java: 7383)在java. lang.反射。在com. android. interal. os.调用(method. java)。RuntimeInit$method odAndArgsCaller. run(RuntimeInit. java: 469)在com. android. interal. os。ZygoteInit. main(ZygoteInit. java: 963)

    由Android系统引起的。看法充气异常:二进制XML文件行#29:二进制XML文件行#29:充气类ImageView时出错

    由Android系统引起的。看法充气异常:二进制XML文件行#29:充气类ImageView时出错

    android.content.res.引起的资源$NotFound异常:资源ID

       at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:290)
       at android.content.res.Resources.getValue(Resources.java:1476)
       at androidx.appcompat.widget.AppCompatDrawableManager.createDrawableIfNeeded(AppCompatDrawableManager.java:235)
       at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:200)
       at androidx.appcompat.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:191)
       at androidx.appcompat.content.res.AppCompatResources.getDrawable(AppCompatResources.java:102)
       at androidx.appcompat.widget.AppCompatImageHelper.loadFromAttributes(AppCompatImageHelper.java:59)
       at androidx.appcompat.widget.AppCompatImageView.(AppCompatImageView.java:78)
       at androidx.appcompat.widget.AppCompatImageView.(AppCompatImageView.java:68)
       at androidx.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:182)
       at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
       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:783)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:874)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:835)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
       at com.google.android.material.internal.NavigationMenuPresenter.inflateHeaderView(NavigationMenuPresenter.java:207)
       at com.google.android.material.navigation.NavigationView.inflateHeaderView(NavigationView.java:281)
       at com.google.android.material.navigation.NavigationView.(NavigationView.java:193)
       at com.google.android.material.navigation.NavigationView.(NavigationView.java:104)
       at java.lang.reflect.Constructor.newInstance0(Constructor.java)
       at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
       at android.view.LayoutInflater.createView(LayoutInflater.java:658)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:801)
       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
       at android.view.LayoutInflater.rInflate(LayoutInflater.java:874)
       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:835)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
       at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
       at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
       at ee.siimplangi.rallytripmeter.activities.MainActivity.onCreate(MainActivity.kt:186)
       at android.app.Activity.performCreate(Activity.java:7358)
       at android.app.Activity.performCreate(Activity.java:7349)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1219)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3126)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3284)
       at android.app.ActivityThread.-wrap12(Unknown Source)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1894)
       at android.os.Handler.dispatchMessage(Handler.java:109)
       at android.os.Looper.loop(Looper.java:166)
       at android.app.ActivityThread.main(ActivityThread.java:7383)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)
    

共有1个答案

呼延钱明
2023-03-14

阅读完评论后,首先你必须使用android:src,因为你没有使用vector drawable。

当我们将图像从资源管理器粘贴到drawable文件夹时,会出现此问题,然后它会询问是否要复制drawable或drawable-v24,如果您在两个目录结构中都粘贴了图像,或者有一个或多个具有不同目录结构的图像,则会显示此错误,确保在将图标移动到drawable文件夹后,将其从drawable-v24中删除,并清理项目,然后运行它。

 类似资料:
  • 我遵循了Support Design Library中的new component NavigationView教程,无法理解以下错误消息: 我试过这里的所有方法 使用任何Android设计支持库元素时出错 但错误消息仍然存在。 任何帮助都将不胜感激! 它抛出了以下三个例外:都指出问题是由布局中的“setContentView(layout)”行引起的。xml。

  • 问题内容: 您好,我是android dev和admob的新手。我正在尝试制作一个带有按钮,几个页面和底部的admob的简单测试应用程序。一切正常,直到我尝试实施admob。这是我的代码: HelloAndroid.java: main.xml: 您好android清单: logcat输出: 我正在使用GoogleAdMobAdsSdkAndroid-6.0.0。再次,我对此非常陌生,我尝试在多个

  • 问题内容: 错误日志: 10-26 12:22:33.144 26926-26926 /?E / AndroidRuntime:致命例外:主进程:ksmk.sahip.com.ecom,PID:26926 java.lang.RuntimeException:无法启动活动ComponentInfo {ksmk.sahip.com.ecom / ksmk.sahip.com.ecom.MainAct

  • 问题内容: 尝试运行我的应用程序时,我意外地遇到了以下错误: 下面是日志猫: 以下是Java代码: 下面是布局代码: 提前致谢 问题答案: 我通过在app / build.gradle上添加更新的cardview和appcompat解决了这一问题 然后重建项目

  • 我试图将我的GLSurfaceView设置在xml布局以及其他UI元素上,并不断获得错误inflating类com.vi.cubo01。MyGLSurfaceView在LogCat. 以下是java代码: 以及xml:

  • 我在自定义控件中膨胀MvxImageView时遇到问题。 从我所做的研究中,我发现了几个嫌疑人 > < li >我是否应该将“如果”添加到“什么”中?(我看到这是关于android地图视图膨胀错误。 < li> 我创建的用户控件是不是都错了?我看到了一个使用SetContentView()而不是inflate的建议,因为它通过mvvmcross机制传递indlate请求,但在自定义视图中没有这样的