Android音乐应用跳转登录页面崩溃:InflateException及Drawable资源缺失问题求助
问题分析与解决方案
咱们一步步拆解你的崩溃问题并解决它:
从错误日志和代码来看,崩溃的核心是Login页面布局解析失败,背后有两个明确的诱因:布局文件缺少根容器,以及引用的Drawable资源缺失。
1. 修复activity_login.xml的根布局缺失问题
Android布局文件必须有一个唯一的根ViewGroup(比如ConstraintLayout、LinearLayout),但你提供的activity_login.xml直接放置了TextView、EditText等控件,没有根容器,这会直接触发InflateException。
修改后的完整activity_login.xml示例如下:
<androidx.constraintlayout.widget.ConstraintLayout 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" android:background="@color/black" tools:context=".Login"> <TextView android:id="@+id/signInText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="83dp" android:layout_marginTop="76dp" android:layout_marginEnd="84dp" android:text="Sign into your account!" android:textColor="@color/white" android:textSize="24sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <EditText android:id="@+id/email" android:layout_width="350dp" android:layout_height="50dp" android:layout_marginStart="30dp" android:layout_marginTop="32dp" android:layout_marginEnd="31dp" android:backgroundTint="@color/white" android:drawableLeft="@drawable/ic_baseline_email_24" android:drawablePadding="15dp" android:hint="Email" android:textColorHint="@color/white" android:textSize="20sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/signInText" /> <EditText android:id="@+id/password" android:layout_width="350dp" android:layout_height="50dp" android:layout_marginStart="30dp" android:layout_marginTop="28dp" android:layout_marginEnd="31dp" android:backgroundTint="@color/white" android:drawableLeft="@drawable/ic_baseline_lock_24" android:drawablePadding="15dp" android:hint="Password" android:textColorHint="@color/white" android:textSize="20sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/email" /> <Button android:id="@+id/logInButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="153dp" android:layout_marginTop="36dp" android:layout_marginEnd="164dp" android:text="Log In" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/password" /> </androidx.constraintlayout.widget.ConstraintLayout>
2. 解决Drawable资源缺失问题
错误日志里的Resources$NotFoundException: Drawable (missing name) with resource ID #0x7f0501a5,对应你在布局中引用的@drawable/ic_baseline_email_24或@drawable/ic_baseline_lock_24资源:
- 检查项目的
res/drawable(或适配不同版本的drawable-vXX目录)下是否存在这两个Drawable文件(矢量图xml或位图都可以); - 如果没有这些资源,你可以:
- 从Material Icons库下载对应的矢量图添加到项目;
- 暂时删除
android:drawableLeft属性,先验证布局能否正常加载; - 替换成项目中已有的其他Drawable资源。
3. 最后验证步骤
完成修改后,执行以下操作确保资源同步:
- 点击Android Studio菜单栏的
Build -> Clean Project; - 再点击
Build -> Rebuild Project; - 重新运行应用测试跳转逻辑。
这样应该就能解决点击“开始”按钮后崩溃的问题了。
内容的提问来源于stack exchange,提问作者Avrius
相关产品推荐
相关产品推荐

