IntroActivity绑定失效,仅显示Hello World问题排查求助
问题解决:IntroActivity绑定失败,界面仅显示Hello World
问题描述
无法正常绑定IntroActivity,执行相关操作后界面仅显示默认的“Hello World”,以下是相关代码与配置:
IntroActivity代码
package com.example.drappointment import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.example.drappointment.databinding.ActivityIntroBinding class IntroActivity : AppCompatActivity() { private lateinit var binding: ActivityIntroBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityIntroBinding.inflate(layoutInflater) setContentView(binding.root) binding.startBtn.setOnClickListener { startActivity(Intent(this@IntroActivity, MainActivity::class.java)) } } }
activity_intro.xml布局文件
<?xml version="1.0" encoding="utf-8"?> <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:id="@+id/main" android:background="@color/purple" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".IntroActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginTop="64dp" android:text="Exceptional Care Close To You" android:textColor="@color/white" android:textSize="34sp" android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:ignore="HardcodedText" /> <ImageView android:id="@+id/imageView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@string/intro_image_description" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:srcCompat="@drawable/intro_women" tools:ignore="ImageContrastCheck" /> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/white_halo" /> <androidx.appcompat.widget.AppCompatButton android:id="@+id/startBtn" style="@android:style/Widget.Button" android:layout_width="170dp" android:layout_height="60dp" android:layout_marginTop="24dp" android:background="@drawable/purple_bg" android:drawableEnd="@drawable/white_arrow" android:paddingStart="8dp" android:paddingEnd="16dp" android:text="Get Started" android:textColor="@color/white" android:textSize="20sp" app:layout_constraintTop_toBottomOf="@+id/textView" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" tools:ignore="HardcodedText" /> </androidx.constraintlayout.widget.ConstraintLayout>
Gradle版本
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
ViewBinding配置
buildFeatures { viewBinding = true }
解决步骤
检查启动Activity配置
打开AndroidManifest.xml,确认IntroActivity被设置为启动Activity,而非默认的MainActivity。正确配置应包含如下intent-filter:<activity android:name=".IntroActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>若
MainActivity仍保留该intent-filter,启动时会加载默认的Hello World布局。清理并重建项目
ViewBinding生成的绑定类可能存在缓存问题,执行以下操作:- 点击Android Studio顶部菜单栏
Build->Clean Project - 完成后点击
Build->Rebuild Project - 重新运行应用
- 点击Android Studio顶部菜单栏
确认ViewBinding配置位置
确保viewBinding = true配置在app模块的build.gradle文件中(而非项目根目录的build.gradle),且位于android节点下:android { // 其他配置... buildFeatures { viewBinding = true } }检查布局文件有效性
确认activity_intro.xml无语法错误(如未定义的颜色、Drawable资源),此类错误会导致布局无法正常加载,系统会 fallback 到默认布局。可通过Android Studio布局编辑器查看红色提示排查问题。
内容的提问来源于stack exchange,提问作者Ainz
相关产品推荐
相关产品推荐

