带有Xamarin.Android的Oreo设备的java.lang.UnsatisfiedLinkError应用程序崩溃

时间:2018-12-12 04:47:20

标签: android xamarin.android android-8.0-oreo android-8.1-oreo android-backup-service

我正在Google Play控制台中收到我的应用的崩溃报告,并且堆栈跟踪如下:

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位运行)。

stacktrace中的类n是我对BackupAgent的实现。这种情况每天或每2天发生一次,似乎(尚未100%确定)自动备份仍在运行,没有出现错误问题。

问题已经存在了将近一个月,我尝试了几件事,但它们似乎没有任何作用:

  1. 带和不带arm64-v8a的发布
    • 这消除了Mono库中对64位支持的原因
  2. 带或不带混淆的发布
    • 我正在使用Dotfuscator社区版
    • 相同的崩溃报告,但只显示了类名
  3. 通过Play商店和带有签名APK的本地安装应用
    • 这表明与安装方法无关

我还尝试删除我的自定义BackupAgent类,并使用默认的BackupAgent,问题解决了。不过,我需要在BackupAgent中添加额外的逻辑,所以这对我来说是不行的。

有人遇到类似的问题吗?如果能指导我一些有关此问题的线索,那将是很好的。谢谢。

0 个答案:

没有答案