Android Studio调试异常:物理设备提示Activity类不存在
清理项目并重新构建
执行./gradlew clean(Mac/Linux)或gradlew clean(Windows)清理构建缓存,再运行./gradlew assembleDebug重新编译打包。物理机可能残留旧构建缓存,导致组件注册信息不匹配。检查AndroidManifest.xml中的Activity注册
确认AuthenticationActivity在Manifest中已正确注册,包名和类名完全匹配报错里的my.package.name.AuthenticationActivity。Android 14对组件注册要求更严格,别出现拼写错误,<activity>标签的android:name属性尽量用全路径,避免前缀遗漏导致的识别问题。彻底卸载物理机上的旧应用残留
把物理机上该应用的所有实例(包括多用户/分身)都卸载干净。有时候卸载不彻底,残留数据会让新安装的包无法正确识别组件。可以在系统设置的应用管理里找到应用,卸载后再清除数据;或者用ADB命令卸载:adb uninstall my.package.name。核对构建变体与签名配置
确保部署到物理机的构建变体(比如Debug/Release)和虚拟机完全一致。不同变体的Manifest可能有差异,签名配置也可能导致物理机安装的包不符合预期。验证ADB连接与设备状态
执行adb devices确认物理机已正常连接,状态显示device。再运行adb shell pm list packages | grep my.package.name,确认应用确实安装到了物理机上。如果没找到,说明安装过程有问题,检查ADB的日志输出排查原因。检查Android 14的组件可见性限制
Android 14新增了组件可见性规则,如果AuthenticationActivity是启动页,必须在<activity>标签里设置android:exported="true"——启动Activity的intent-filter包含<action android:name="android.intent.action.MAIN" />和<category android:name="android.intent.category.LAUNCHER" />时,这个属性是强制要求的,否则系统无法启动该Activity。
内容的提问来源于stack exchange,提问作者baretd

