gpt4 book ai didi

android - 在包 'srcCompat' 中找不到属性 '....' 的资源标识符

转载 作者:行者123 更新时间:2023-11-30 00:58:22 25 4
gpt4 key购买 nike

我要说的是,我已经在 stackoverflow 上看到了这个问题的一些答案,但只是提供了一个快速的“修复”解决方案。如果可能的话,我也想了解为什么会发生这种情况(有一些细节的回答)。

现在开始讨论这个问题:我刚刚使用 Android Studio 2.2 重新开始了 android 开发。我有一个 ios 应用程序,我想移植到 android(意思是,为 Android 重新创建它)。我从 Android Studio 中的一个基本模板开始,添加了一个约束布局和 2 个 ImageView,使用我在 DRAWABLE 文件夹中复制的 2 个 PNG 文件。

在不做任何更改的情况下,当我尝试构建时出现此错误:

错误:(11) 在包“x.y.z”中找不到属性“srcCompat”的资源标识符。两个图像都会发生这种情况。这是布局文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/lib/x.y.z"
xmlns:app2="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="x.y.z.MainActivity">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app2:srcCompat="@drawable/pngFile1"
android:id="@+id/imageView"
app2:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="8dp"
app2:layout_constraintRight_toRightOf="parent"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp" />

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app2:srcCompat="@drawable/pngFile2"
android:id="@+id/imageView2"
app2:layout_constraintBottom_toTopOf="@+id/imageView"
app2:layout_constraintRight_toRightOf="@+id/imageView"
android:layout_marginBottom="8dp" />

现在,为了正确回答我的问题,这里有一些我想了解的事情:

  • 我在 SO 上找到的一些其他答案建议更改默认值:

    xmlns:app="http://schemas.android.com/apk/res-auto"

到:

xmlns:app="http://schemas.android.com/apk/lib/x.y.z"

的确,这从构建中消除了错误,但对我来说似乎很奇怪(以我几乎没有的 android 经验),当我添加第二张图片时,Android Studio 创建了另一条类似的行:

xmlns:app2="http://schemas.android.com/apk/res-auto"

正如我们所见,它对图像使用了这个,所以错误再次出现。

我记得大约一年前,我在 Android Studio 上开发了一个应用程序,并使用了几乎相同的方法来添加图像/带图像的按钮,但这些问题并不存在。

这就是为什么我也想了解为什么会发生这种情况以及如何正确解决它。

提前致谢!

最佳答案

首先你需要关注你正在使用的android studio版本。您还应该查看 minSdkVersiontargetSdkVersion。尝试使用 android:src="" 而不是 app2:srcCompat=

app2:srcCompat= suports older APIs when loading vectorDrawable.

如果你想使用它,那么修改你的build.gradile,

 android {  
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}

更多信息你可以引用这个link

或者您可以在 stackoverflow 引用这个答案

关于android - 在包 'srcCompat' 中找不到属性 '....' 的资源标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39814142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com