Как отправить сериализуемые объекты в другое приложение для Android - PullRequest
0 голосов
/ 03 июля 2019

Я довольно новичок в 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...