Androidで実装中に、以下のようなExceptionが発生します。
FATAL EXCEPTION: main
Process: "アプリ名", PID: 19962
java.lang.RuntimeException: Unable to instantiate receiver "ClassA": java.lang.InstantiationException: can't instantiate class "ClassA"
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2441)
at android.app.ActivityThread.access$1700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1322)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:212)
at android.app.ActivityThread.main(ActivityThread.java:5137)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:718)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.InstantiationException: can't instantiate class "ClassA"
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1208)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2436)
... 10 more
ソースコード
BroadcastReceiver
public abstract class ClassA extends BroadcastReceiver {
public ClassA() {
super();
}
@Override
public final void onReceive(final Context context, final Intent intent) {
String actionName = intent.getAction();
if (actionName.equals("A")) {
}
}
}
送信元
public static void sendBroadcast(final Context context, Serializable obj) {
Intent intent = new Intent();
intent.setAction("A");
intent.putExtra("key", obj);
context.sendBroadcast(intent);
}
マニフェスト
<receiver android:name=".ClassA" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data android:scheme="package" />
</intent-filter>
<intent-filter>
<action android:name="A" />
</intent-filter>
</receiver>
IntentにSerializableをimplementsしたクラスをputExtraして送信しています。
端末はAndroid 4.4.4を使用しています。
対処法がわかる方教えていただけないでしょうか。
よろしくお願いします。