Android中从主Activity跳转其他Activity失败Intent运行报错如何解决
问题原因
- 核心触发点是Android系统无法正常访问并实例化你要跳转的
Second类,触发IllegalAccessException,常见原因如下: Second类没有用public修饰,系统组件工厂没有权限访问非公开的Activity类Second类仅声明了带参数的构造方法,没有显式提供无参的public构造方法,系统实例化Activity时默认调用无参构造,找不到对应方法就会抛出权限异常- 少数情况为混淆配置错误,开启混淆后
Second类的访问权限被修改、类名被篡改,导致系统无法找到对应类
解决方法
- 检查
Second类的声明修饰符,确保类为public类型:
public class Second extends AppCompatActivity { // 类内部逻辑 }
- 如果你给
Second类写了带参数的构造方法,必须额外补充无参的public构造方法:
public Second() { super(); }
- 检查
AndroidManifest.xml中的Activity注册配置,确保android:name属性值和Second类的全类名完全匹配:
<activity android:name="com.softltd.application.Second" android:exported="false" />
- 如果项目开启了代码混淆,在混淆规则文件(通常为
proguard-rules.pro)中添加保留Activity类的规则,避免类和构造方法被混淆修改:
-keep public class * extends android.app.Activity -keepclassmembers class * extends android.app.Activity { public <init>(...); }
内容的提问来源于stack exchange,提问作者SR Shihab
相关产品推荐
相关产品推荐

