我在我的活动中使用ImageView中的矢量,该应用程序在Android 7.0上工作正常,但在Android 4.4上崩溃。 Logcat说,Resources$NotFoundException
。我已经尝试过在stackoverflow上发布的解决方案,但它们似乎都没有工作。
这些是我尝试的解决方案。
在我的gradle文件中添加了这个
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
在OnCreate of activity
中添加了此项AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
android:src
替换为XML文件中的app:srcCompat
。这是我的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文件中处理两个图像完全相同。
答案 0 :(得分:1)
几天前我有同样的问题。 Android 4.4不支持带有(v21)的向量,这些向量是在android studio目录树中的名称之后用褪色字体编写的,这些矢量图形仅支持API 21+。理想情况下,Android工作室应该将矢量分割成具有不同大小的PNG文件,但由于某些不明原因,Android工作室有时不会自行处理。
在上述方案中,您似乎尝试使用矢量图形作为“共享”图标,尝试仅从Android Studio中的材质图标导入共享图标,这样Android 4.4也支持导入的矢量。