.net – Android Xamarin应用程序中的System.Threading.Tasks.RangeWorker.FindNewWork中的NullReferenceException

在我使用Xamarin创建的 Android原生应用中,我在HockeyApp中收到以下崩溃报告:
Xamarin caused by: android.runtime.JavaProxyThrowable: System.NullReferenceException: Object reference not set to an instance of an object
  at System.Threading.Tasks.RangeWorker.FindNewWork (system.int64& nFromInclusiveLocal,system.int64& nToExclusiveLocal) [0x00000] in <8f1acca5a43d45c5b8d35add5a11806a>:0 
  at System.Threading.Tasks.RangeWorker.FindNewWork32 (system.int32& nFromInclusiveLocal32,system.int32& nToExclusiveLocal32) [0x00000] in <8f1acca5a43d45c5b8d35add5a11806a>:0 
  at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback () <0xec919968 + 0x00033> in <8f1acca5a43d45c5b8d35add5a11806a>:0

我无法弄清楚导致此异常的原因,因为堆栈跟踪仅包含.net代码.我查看了框架的源代码,看看我是否能理解它,但无济于事.

我也在我最喜欢的搜索引擎中尝试了很多不同的搜索,但没有发现任何关于类似问题的帖子/文章.

从与这些崩溃相关的数据来看,它似乎只是在三星设备上发生的问题(S8,S8和Note8).我无法100%确定它不会影响其他设备,但我只有那些崩溃报告.

知道什么可能导致那些崩溃吗?我是否在使用线程做错了,可能还有取消令牌?我有没有正确处理的条件?

任何有助于进一步解决这个问题的帮助都会受到欢迎.

谢谢

编辑:

我知道没有太多要做但是因为这是我在HockeyApp中获得的唯一堆栈跟踪而我无法复制,我不知道是什么代码导致了这一点.

我正在寻找的是更多关于什么可能导致Mono线程代码在我自己不管理线程时具有空引用异常的线索.或者这个堆栈跟踪只是一个红色的鲱鱼,我需要在其他地方寻找?

解决方法

吸引我注意的是FindNewWork32调用link for the .NET implementation.您的应用程序可能是针对32位架构编译的,而您提到的那些三星设备有64位处理器.

This Microsoft paper显示了如何将应用程序定位到一个或多个Android支持cpu架构.您可能需要定位多个平台:

To target multiple cpu architectures,you can select more than one ABI
(at the expense of larger APK file size). You can use the Generate one
package (.apk) per selected ABI option (described in Set Packaging
Properties) to create a separate APK for each supported architecture.

You do not have to select arm64-v8a or x86_64 to target 64-bit devices; 64-bit support is not required to run your app on 64-bit hardware. For example,64-bit ARM devices (such as the Nexus 9) can run apps configured for armeabi-v7a. The primary advantage of enabling 64-bit support is to make it possible for your app to address more memory.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...