Приложение вылетает с java.lang.UnsatisfiedLinkError для устройств Oreo с Xamarin.Android - PullRequest
0 голосов
/ 12 декабря 2018

Я получаю отчеты о сбоях в Google Play Console для моего приложения, и трассировка стека выглядит следующим образом:

java.lang.UnsatisfiedLinkError: 
  at mono.android.Runtime.register (Native Method)
  at md5f3dc63ecaad575af71bd7a9b1622f75b.n.<clinit> (n.java:20)
  at java.lang.Class.newInstance (Native Method)
  at android.app.ActivityThread.handleCreateBackupAgent (ActivityThread.java:3431)
  at android.app.ActivityThread.-wrap3 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1813)
  at android.os.Handler.dispatchMessage (Handler.java:105)
  at android.os.Looper.loop (Looper.java:180)
  at android.app.ActivityThread.main (ActivityThread.java:6944)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:240)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:835)

Я использую Xamarin.Android с Visual Studio для своей разработки и приложениенацеливается на Android Pie (API 28).Авария происходит только на устройствах Android 8.0 и 8.1 (которые поддерживают arm64-v8a, но не уверен, что это просто совпадение, большинство устройств с Oreo в любом случае работают на 64-битной версии).

Класс n в трассировке стека является моей реализацией BackupAgent.Это происходит один раз в день или каждые 2 дня, и кажется (еще не уверен на 100%), что Auto Backup все еще работает без проблем с ошибкой.

Проблема существует уже почти месяц, и я попыталсяпара вещей, но они, кажется, не имеют никакого значения:

  1. Выпуск с и без arm64-v8a
    • Это устраняет причину из библиотеки моно для поддержки 64-бит
  2. Выпуск с обфускацией и без нее
    • Я использую Dotfuscator Community Edition
    • Те же отчеты о сбоях, но только имя класса раскрывается
  3. Установка приложения через Play Store и локально с подписанным APK
    • Это говорит о том, что нет ничего общего с методом установки
* 1033Я также попытался удалить свой пользовательский класс BackupAgent и использовать стандартный BackupAgent, проблема исчезла.Мне нужно добавить дополнительную логику в мой BackupAgent, так что для меня это не разрешено.

У кого-нибудь есть подобная проблема?Было бы неплохо, если бы я мог дать некоторые подсказки к этой проблеме.Спасибо.

...