Android XML编译报错:未找到app:altsrc属性求助
编译XML时
app:altsrc属性找不到的问题排查 编译XML文件时出现报错:error: attribute altsrc not found.,该报错指向布局文件中ImageFilterView组件的app:altsrc属性,但在XML编辑阶段没有任何错误或警告提示。
相关布局代码
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.motion.widget.MotionLayout 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:layout_width="match_parent" android:layout_height="match_parent" app:layoutDescription="@xml/activity_welcome_scene" tools:context=".ui.onboarding.WelcomeActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/onboaring_title1" android:textSize="25sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/imageView" /> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="150dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.0" app:srcCompat="@drawable/welcome_banner" android:contentDescription="@string/banner_1" /> <TextView android:id="@+id/tv_onboardingDesc_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:layout_marginTop="16dp" android:layout_marginEnd="24dp" android:gravity="center" android:alpha="0" android:text="@string/onboarding_desc_1" android:textSize="15sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" /> <androidx.constraintlayout.utils.widget.ImageFilterView android:id="@+id/menu1" android:layout_width="wrap_content" android:layout_height="wrap_content" app:tint="@color/main_purple" app:altsrc="@drawable/ic_circle_full_24" app:layout_constraintEnd_toStartOf="@id/menu2" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_onboardingDesc_1" app:srcCompat="@drawable/ic_circle_24" /> <androidx.constraintlayout.utils.widget.ImageFilterView android:id="@+id/menu2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tint="@color/main_purple" app:altsrc="@drawable/ic_circle_full_24" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@id/menu3" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@id/menu1" app:layout_constraintTop_toTopOf="@+id/menu1" app:layout_constraintVertical_bias="0.0" app:srcCompat="@drawable/ic_circle_24" /> <androidx.constraintlayout.utils.widget.ImageFilterView android:id="@+id/menu3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tint="@color/main_purple" app:altsrc="@drawable/ic_circle_full_24" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@id/menu2" app:layout_constraintTop_toTopOf="@+id/menu2" app:layout_constraintVertical_bias="0.0" app:srcCompat="@drawable/ic_circle_24" /> </androidx.constraintlayout.motion.widget.MotionLayout>
编译错误截图

排查方案
检查ConstraintLayout依赖版本:
app:altsrc是ImageFilterView在ConstraintLayout 2.1.0及以上版本才新增的属性。打开模块级build.gradle文件,确认依赖版本:implementation "androidx.constraintlayout:constraintlayout:2.1.0+"若版本低于2.1.0,升级后点击
Sync Project with Gradle Files同步项目。清理缓存并重建项目:IDE缓存可能导致属性识别异常,依次执行:
- 点击菜单栏
Build->Clean Project - 再点击
Build->Rebuild Project
- 点击菜单栏
确认命名空间与组件路径:布局中已正确声明
xmlns:app="http://schemas.android.com/apk/res-auto",且ImageFilterView的路径为androidx.constraintlayout.utils.widget.ImageFilterView,若路径错误会导致属性不兼容,需修正组件全类名。
内容的提问来源于stack exchange,提问作者Bryant Anthony
相关产品推荐
相关产品推荐

