Я довольно новичок в Java, и я экспериментировал с отправкой сериализуемых объектов через приложение.Я пытаюсь настроить 2 независимых приложения и заставить приложение A отправлять объект сериализации в приложение B через широковещательную рассылку, но я столкнулся с ошибкой, подобной этой java.lang.RuntimeException: Parcelable обнаружил ClassNotFoundException, читающий объект Serializable (name = com.appA.UserConfig).
Я прочитал несколько вопросов по этой проблеме, но не могу найти конкретного ответа по этому поводу или возможно ли это.Мой единственный прогресс и понимание пока что, если я объявлю один и тот же / скопирую класс из приложения A в приложение B, приложение B должно быть в состоянии прочитать сериализуемый объект, верно?
В настоящее время это мой код для приложения A:
UserConfig.java:
public class UserConfig implements Serializable {
public final String var1;
public final String[] var2;
public final Map<String, Object> var3;
public UserConfig(Map<String, Object> map, String[] strArr, String str) {
this.var3 = map;
this.var2 = strArr;
this.var1 = str;
}
}
MainActivity.java:
Intent intent = new Intent("com.appA.action.userConfig");
intent.putExtra("userConfig", userConfig);
sendBroadcast(intent);
Аналогично для приложения B, я скопировал файл UserConfig:
UserConfig.java:
public class UserConfig implements Serializable {
public final String var1;
public final String[] var2;
public final Map<String, Object> var3;
public UserConfig(Map<String, Object> map, String[] strArr, String str) {
this.var3 = map;
this.var2 = strArr;
this.var1 = str;
}
}
MyReceiver.java:
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
try{
Serializable serializableExtra = intent.getSerializableExtra("userConfig");
}
catch(Exception e) {
Log.i("ERROR", e.toString());
}
}
}
Вот текущий вывод из исключения: java.lang.RuntimeException: Parcelable встречается ClassNotFoundException, читая объект Serializable(name = com.appA.UserConfig)