java.lang.InstantiationExceptio 异常处理 求解?

袁杭 发布于 2013/04/27 10:31
阅读 366
收藏 0

今天遇到一个问题,要在一个activity中发送一个广播,在另一个activity中接收这个广播,我写了一个内部类

class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent arg1) {
    String msg = arg1.getStringExtra("msg");
    Toast.makeText(arg0, msg, Toast.LENGTH_SHORT).show();
    }
}

在清单文件里面配置了

<receiver 
            android:name="com.test.pad.activity.BAct$MyReceiver"
            android:exported="false"
             >
            <intent-filter>
                <action android:name="com.test.login" />
            </intent-filter>
        </receiver>
但是运行总是报异常

E/AndroidRuntime(7606): java.lang.RuntimeException: Unable to instantiate receiver com.test.pad.activity.BAct$MyReceiver: java.lang.InstantiationException com.test.pad.activity.BAct$MyReceiver

问一下大牛们,是什么原因?

网上找了很多,都是说配置有问题

加载中
0
逝水fox
逝水fox
补充一下,按照Java的规则,如果要通过反射获取一个非static内部类的实例,它的所有构造函数都会在最开始追加一个参数表示包含他的外部类的实例,所以非static内部类是绝对不存在通常的缺省构造函数的。
0
逝水fox
逝水fox
虽然不懂Android,但通常要这样使用这个内部类,应该要public static class吧?
返回顶部
顶部