Я работаю над созданием приложения Xamarin с использованием пакета Stripe Terminal aar для Android. После создания библиотеки привязки Android для пакета Stripe Terminal мне удалось ее скомпилировать с помощью следующих обновлений файла Metadata.xml
<remove-node path="/api/package[@name='com.stripe.stripeterminal']/class[@name='DaggerTerminalComponent']" />
<remove-node path="/api/package[@name='com.stripe.stripeterminal']/interface[@name='ErrorCallback']" />
<remove-node path="/api/package[@name='com.stripe.stripeterminal']/interface[@name='BbposBluetoothAdapter']" />
<attr path="/api/package[@name='com.stripe.stripeterminal']/interface[@name='ErrorCallback']" name="visibility">public</attr>
<attr path="/api/package[@name='com.stripe.stripeterminal']/class[@name='Terminal']" name="managedName">StripeTerminal</attr>
Проблема заключается в удалении интерфейса ErrorCallback, при этом удаляются все классы Java и методы, расширяющие этот интерфейс. Если я добавлю следующее
<attr path="/api/package[@name='com.stripe.stripeterminal']/interface[@name='ErrorCallback']" name="visibility">public</attr>
Я могу заставить вещи идти дальше, и методы, которые мне нужны, возвращаются, как и метод ниже, Callback Extends ErrorCallback
public Cancelable discoverReaders(DiscoveryConfiguration config, DiscoveryListener discoveryListener, Callback callback)
Тогда java жалуется, что ErrorCallback является частным, и я получаю эту ошибку при сборке проекта Android. Рассматривая выходные данные кода Java Xamarin, включая ErrorCallback в список расширенных интерфейсов.
ошибка: ошибка вызова не является общедоступной в com.stripe.stripeterminal; недоступен извне пакет
Можно ли это исправить с помощью правильных обновлений файла Metadata.xml, если нет, можно ли это исправить с помощью частичного класса в библиотеке привязок, и как бы вы начали с этого?