В моем собственном Android-приложении, созданном с помощью Xamarin, я получаю следующий отчет о сбое в 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. Я посмотрел на исходный код фреймворка, чтобы понять, смогу ли я в этом разобраться, но безрезультатно.
Я также пробовал много разных поисков в моих любимых поисковых системах, не найдя ни одной публикации / статьи о похожих проблемах.
Судя по данным, связанным с этими сбоями, проблема возникает исключительно на устройствах Samsung (S8, S8 + и Note8). Я не могу быть уверен на 100%, что это не влияет на другие устройства, но у меня есть только отчеты о сбоях для них.
Есть идеи, что может вызвать эти сбои? Я делаю что-то не так с потоками, может быть, с токенами отмены? Есть ли условия, с которыми я не справляюсь?
Любая помощь для дальнейшего устранения этой проблемы будет очень приветствоваться.
Спасибо
РЕДАКТИРОВАТЬ:
Я понимаю, что не так уж и много, но так как это единственная трассировка стека, которую я получаю в HockeyApp, и я не могу воспроизвести, я понятия не имею, какой код вызывает это.
То, что я ищу, - это больше подсказка о том, что может привести к тому, что в поточном коде Mono возникнет исключение нулевой ссылки, когда я сам не управляю потоками. Или, может быть, эта трассировка стека - просто красная сельдь, и мне нужно искать в других местах?