You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

原正常运行的Activity现抛出ActivityNotFoundException求助

解决ActivityNotFoundException:系统误找AppCompatButton而非Target Activity的问题

这问题看起来有点诡异——明明你要启动的是Target Activity,系统却报错说找不到android.support.v7.widget.AppCompatButton这个“Activity”,而且你也确认了Target已经在Manifest里注册了对吧?别慌,这大概率是变量名冲突搞出来的乌龙,不是Manifest的问题。

问题根源分析

看你贴的点击事件代码:

Target.setOnClickListener { 
    val intent = Intent(this, Target::class.java) 
    startActivity(intent) 
}

这里的第一个Target如果是你在代码里定义的某个AppCompatButton实例(比如你写了val Target: AppCompatButton = findViewById(R.id.xxx)),那么当你写Target::class.java的时候,Kotlin会把它解析成这个按钮实例的类,而不是你要启动的Target Activity类!系统自然就会去Manifest里找AppCompatButton的注册,这肯定找不到啊。

具体解决步骤

  • 修改变量名,区分实例和类:把按钮的变量名改成小写开头的名字(比如targetBtn),避免和Activity类名(首字母大写的Target)重名。修改后代码应该是这样:
    targetBtn.setOnClickListener { 
        val intent = Intent(this, Target::class.java) 
        startActivity(intent) 
    }
    
  • 明确指定Activity类的引用:如果还是担心混淆,可以直接用完整的包名来引用Activity类,确保指向正确:
    val intent = Intent(this, com.hmadland.paranoia.Target::class.java)
    
  • 清理重建项目:有时候Android Studio的缓存会导致奇怪的解析问题,执行Build -> Clean Project,然后Build -> Rebuild Project,再重新运行应用。

额外检查点

虽然你说没修改过Activity相关内容,但可以快速确认下:

  • Target Activity的类名是不是真的叫Target,有没有不小心改了类名?
  • 有没有在Profile.kt里import了错误的类?比如不小心import了android.support.v7.widget.AppCompatButton并把它命名成了Target?

内容的提问来源于stack exchange,提问作者hmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:55:39