Android Studio报错:activity未在AndroidManifest.xml中声明求解决
问题修复方案
1. 修复AndroidManifest.xml中的Activity声明
原代码中使用#注释Activity声明是错误的(XML注释需用<!-- -->),且该Activity未被正确注册。移除无效注释,添加正确的Activity声明:
<activity android:name=".activities.Muse.muse_pick_duration" />
2. 将muse_pick_duration改为可实例化类
抽象类无法被启动为Activity,需移除abstract关键字,并修正onCreate方法的执行顺序:
package com.tammy.tammyapp.activities.Muse import com.tammy.tammyapp.R import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class muse_pick_duration : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 先调用父类初始化方法 setContentView(R.layout.muse_pick_duration) // 再设置布局 } }
3. 修复MipniHome类的代码错误
该类存在多处语法与逻辑问题,修正后如下:
package com.tammy.tammyapp.activities.Muse import android.content.Intent import android.os.Bundle import android.widget.Button import androidx.appcompat.app.AppCompatActivity import com.tammy.tammyapp.R class MipniHome : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.muse_home) val button3 = findViewById<Button>(R.id.button3) button3.setOnClickListener { val intent = Intent(this, muse_pick_duration::class.java) startActivity(intent) } } }
修正点说明:
- 移除
abstract关键字,使其成为可实例化的Activity类 - 删除无意义的
abstract val声明 - 修正
onCreate方法签名,正确重写父类方法 - 调整
super.onCreate与setContentView的执行顺序 - 变量名
Intent改为小写intent,符合Kotlin命名规范
4. 修复muse_home.xml的布局语法错误
原布局中tools:context标签被错误放置在布局根标签外部,需移至根标签内部:
<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" tools:context=".activities.Muse.MipniHome">
最后验证步骤
完成上述修改后,执行以下操作确保生效:
- 点击工具栏「Sync Project with Gradle Files」同步项目
- 执行「Build -> Clean Project」清理项目
- 执行「Build -> Rebuild Project」重新构建项目
内容的提问来源于stack exchange,提问作者Nayana
相关产品推荐
相关产品推荐

