Android应用启动即崩溃问题求助(附代码与报错日志)
应用启动崩溃原因排查与解决
核心问题
从报错日志的java.lang.IllegalAccessException: java.lang.Class<com.example.progpmobile.SplashScreen> is not accessible from java.lang.Class<android.app.AppComponentFactory>可以明确:你的SplashScreen类没有使用public修饰符,导致Android系统无法通过反射实例化这个启动Activity。
解决方案
修改SplashScreen类的定义,添加public关键字:
public class SplashScreen extends AppCompatActivity{ // 原有代码保持不变 }
原因说明
Android系统启动Activity时,会通过AppComponentFactory类使用反射机制创建Activity实例。反射要求被实例化的类必须是public权限——默认权限(无修饰符)的类仅允许同包内的类访问,而AppComponentFactory属于系统包,无法访问你的默认权限类,因此抛出非法访问异常,直接导致应用启动崩溃。
额外检查点
- 确保
LogIn和MainActivity类同样使用public修饰符,避免后续跳转时出现同类问题 - 后续启用Manifest中注释掉的
LogIn和Register声明时,要根据需求正确设置它们的android:exported属性(外部可启动的Activity设为true,仅内部跳转则设为false)
内容的提问来源于stack exchange,提问作者Steposkrt
相关产品推荐
相关产品推荐

