-
(1분 읽기) 안드로이드 XML 오류 해결: Failed to resolve attribute 😱📱Android 개발/오류 해결 2025. 1. 15. 14:29
안드로이드 앱 개발 중 Failed to resolve attribute 오류가 발생했다고?
android.view.InflateException: Binary XML file: Error inflating class ImageButton이라는 메시지와 함께 빌드가 실패했다면, 아래 해결 방법으로 문제를 쉽게 해결할 수 있어! 🚀
⚠️ 문제 원인
- 테마와 속성 충돌
- ?attr/selectableItemBackground 속성이 테마에 정의되지 않아서 발생.
- 잘못된 리소스 참조
- android:background에 잘못된 리소스를 참조할 때.
- 위젯과 테마 간 호환성 문제
- AppCompat 위젯과 Material3 테마 간 충돌.
android.view.InflateException: Binary XML file: Error inflating class ImageButton Caused by: Failed to resolve attribute at index
✅ 해결 방법
1️⃣ 테마에 속성 추가 🎨
- themes.xml에 selectableItemBackground 속성을 추가하면 해결 가능!
- 아래 코드를 themes.xml에 넣어보자.
<style name="Theme.MyApp" parent="Theme.Material3.DayNight.NoActionBar"> <item name="selectableItemBackground">@drawable/ripple_effect</item> <item name="selectableItemBackgroundBorderless">@drawable/ripple_effect</item> </style>
- @drawable/ripple_effect는 커스텀 클릭 효과야.
- 이 방법은 테마와 속성 충돌 문제를 해결해줘!
2️⃣ 속성 직접 정의 🛠️
- ImageButton이나 AppCompatImageButton에서 background 속성을 직접 정의.
- ripple_effect를 직접 적용해서 문제를 해결할 수 있어.
<androidx.appcompat.widget.AppCompatImageButton android:id="@+id/topbar_setting" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_settings" android:background="@drawable/ripple_effect" android:contentDescription="@string/description_settings" />
- AppCompatImageButton을 사용하면 호환성 문제를 줄일 수 있어.
3️⃣ Material 위젯 사용 🧩
- Material Design 위젯을 사용하면 테마 충돌 문제를 쉽게 해결할 수 있어.
- 특히, ImageButton보다는 MaterialButton을 사용하는 걸 추천해!
<com.google.android.material.button.MaterialButton android:id="@+id/topbar_setting" android:layout_width="wrap_content" android:layout_height="wrap_content" app:icon="@drawable/ic_settings" android:backgroundTint="@color/colorPrimary" />
- MaterialButton은 Material3 테마와 호환성이 좋아!
- 아이콘(icon) 속성으로 ImageButton 같은 효과를 줄 수 있어! 🎨
💡 Tip
- 테마와 위젯을 Material3로 맞추기 → 호환성 문제 최소화!
- 커스텀 리소스(@drawable/ripple_effect) 사용으로 클릭 효과 개선!
- Material Design을 사용하면 더 세련된 UI/UX를 만들 수 있어! 🎨
🚀 빌드 성공! 😊
이제 Failed to resolve attribute 오류 없이 안정적으로 빌드할 수 있어!
테마 충돌 문제를 해결하고 Material Design 위젯을 적극 활용해봐!'Android 개발 > 오류 해결' 카테고리의 다른 글
- 테마와 속성 충돌