ClassNotFoundException в приложении .net8-android с двумя проектами привязки библиотеки AndroidC#

Место общения программистов C#
Ответить
Anonymous
 ClassNotFoundException в приложении .net8-android с двумя проектами привязки библиотеки Android

Сообщение Anonymous »

Я переношу свое приложение Xamarin (https://github.com/PhilippC/keepass2android) на .net8. К сожалению, у меня возникает исключение ClassNotFoundException, когда я использую один из методов из aar (связанный через привязку AndroidLibraryProject).
Поскольку приложение довольно сложное, я удалил проблема вниз. Оказывается,
  • тестовое приложение, ссылающееся только на проект привязки A, может вызывать методы из A
  • тестовое приложение, ссылающееся на проект привязки A и проект B, не может вызывать методы из A (ClassNotFoundException).
Я обнаружил какой из моих проектов легко получить «А» (потому что вызов по нему не удался). Я нашел «B», сократив тестовое приложение с примерно 10 проектов привязки (как в исходном приложении) до одного (в дополнение к A), который все еще вызывает исключение. Все остальные проекты привязки можно добавить в приложение, не мешая библиотеке A.
Сейчас у меня относительно небольшая установка для тестирования, но я понятия не имею, почему я получаю ошибку. .
  • и библиотека A, и библиотека B являются относительно небольшими и простыми библиотеками (только A использует немного собственного кода). они оба не ссылаются на сторонние пакеты. (см. ссылки на код ниже)
  • Я проверил выходные данные сборки (https://jumpshare.com/s/v6XqzOC3rtW5m9zDWT2w), но не нашел ничего подозрительного.
  • Я проверил выходные данные отладки (https://gist.github.com/PhilippC/aadb91 ... 187e1042d2), но ничего не нашел.
  • Вывод logcat тоже ничего не показывает , просто исключение.
Есть ли у вас какие-либо подсказки о том, как мне продолжить диагностику этой проблемы или как ее решить?
Еще раз обратите внимание, что это происходит только до тех пор, пока я добавляю ссылку на привязку B в свой проект. Если я удалю эту привязку, все будет в порядке.
Обратите также внимание, что в приложении Xamarin оба aars были успешно связаны (через два проекта привязки библиотеки).
P.S.:
Библиотека «А» — https://github.com/PhilippC/keepass2and ... eyboard_AS< /p>
Библиотека «B» — https://github.com/PhilippC/keepass2and ... PluginSDK2
Полным исключением является Java.Lang.ClassNotFoundException: 'Не найден класс "keepass2android.kbbridge.KeyboardData" по пути: DexPathList[[zip file "/data/app/~~_oXraafdQB1_AfSmxSCeoA==/keepass2android.keyboardbindingtest2- zJH-vMcETboXqBVzvrvvAw==/base.apk"],nativeLibraryDirectories=[/data/app/~~_oXraafdQB1_AfSmxSCeoA==/keepass2android.keyboardbindingtest2-zJH-vMcETboXqBVzvrvvAw==/lib/arm64, QB1_AfSmxSCeoA== /keepass2android.keyboardbindingtest2-zJH-vMcETboXqBVzvrvvAw==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]'
когда Я вызываю что-то вроде if (Keepass2android.Kbbridge.KeyboardData.AvailableFields == null) в приложении C#. Но соответствующие ошибки появляются, если я обращаюсь к другим классам из этой библиотеки.

Подробнее здесь: https://stackoverflow.com/questions/791 ... inding-pro
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»