Android启动FragmentActivity时出现ActivityNotFoundException求助
排查启动FragmentActivity时的ActivityNotFoundException问题
以下是针对性的排查步骤:
检查Manifest的Activity声明
必须声明你自己的自定义FragmentActivity子类,绝对不能直接声明系统的androidx.fragment.app.FragmentActivity。比如你的类是com.example.greetingcard.MyFragmentActivity,Manifest里要这么写:<activity android:name=".MyFragmentActivity" />同时核对包名和类名的拼写,确保和实际类的全限定名完全一致。
检查启动Activity的代码
启动时要指定你自己写的FragmentActivity子类,不能直接传系统的FragmentActivity.class。正确示例:// 替换成你实际的自定义类名 Intent intent = new Intent(MainActivity.this, MyFragmentActivity.class); startActivity(intent);确认上下文和目标类参数没有传错。
检查自定义FragmentActivity的实现
确保你的类正确继承自androidx.fragment.app.FragmentActivity,并且是public访问权限(否则系统无法实例化)。示例:public class MyFragmentActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fragment); } }排查类中是否有编译错误,导致类没有正确生成。
检查gradle依赖与编译状态
确认已引入androidx fragment依赖,比如:implementation 'androidx.fragment:fragment:1.6.1'执行
Build -> Clean Project再Build -> Rebuild Project,清理编译缓存,确保类被正确编译打包。其他可能的问题
如果开启了代码混淆,要把自定义FragmentActivity加入白名单,避免被混淆后找不到类:-keep public class com.example.greetingcard.MyFragmentActivity同时确认设备上安装的是最新编译的APK,卸载旧版本后重新安装测试。
内容的提问来源于stack exchange,提问作者tanu
相关产品推荐
相关产品推荐

