Android 4.4上的资源$ NotFoundException

时间:2017-10-21 12:22:42

标签: java android

我在我的活动中使用ImageView中的矢量,该应用程序在Android 7.0上工作正常,但在Android 4.4上崩溃。 Logcat说,Resources$NotFoundException。我已经尝试过在stackoverflow上发布的解决方案,但它们似乎都没有工作。

这些是我尝试的解决方案。

  1. 在我的gradle文件中添加了这个

    defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }
    
  2. 在OnCreate of activity

    中添加了此项
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); 
    
  3. android:src替换为XML文件中的app:srcCompat
  4. 这是我的XML代码

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:srcCompat="@drawable/ic_arrow_back_white_24dp"
                android:tint="@color/colorPrimary"
                android:id="@+id/details_back"
                android:layout_margin="15dp"
                android:layout_alignParentStart="true"/>
    
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:srcCompat="@drawable/share"
                android:tint="@color/colorPrimary"
                android:id="@+id/details_share"
                android:layout_margin="15dp"
                android:layout_alignParentEnd="true"/>
    
        </RelativeLayout>
    

    这是JAVA文件中的代码

        ImageView detail_share;
        detail_share = (ImageView) findViewById(R.id.details_share);
        detail_share.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
    
                // code for sharing item
    
            }
        });
    

    此外,错误发生在第二个ImageView中,而不是第一个,尽管完全相同。我也在java文件中处理两个图像完全相同。

1 个答案:

答案 0 :(得分:1)

几天前我有同样的问题。 Android 4.4不支持带有(v21)的向量,这些向量是在android studio目录树中的名称之后用褪色字体编写的,这些矢量图形仅支持API 21+。理想情况下,Android工作室应该将矢量分割成具有不同大小的PNG文件,但由于某些不明原因,Android工作室有时不会自行处理。

在上述方案中,您似乎尝试使用矢量图形作为“共享”图标,尝试仅从Android Studio中的材质图标导入共享图标,这样Android 4.4也支持导入的矢量。