【发布时间】:2017-10-23 17:26:57
【问题描述】:
这是一个奇怪的情况:),我已经在我的片段中实现了这个代码来扫描 multithread environment 中的 TCP Ports ,它是 crash when debugging ,有时还有 crash in release mode 也带有 thoose 消息:
E/art (12972): Nested signal detected - original signal being reported
F/art (12972): art/runtime/fault_handler.cc:117] Check failed: !initialized_
尝试设置 Target
Android to 23无效。尝试运行
adb shell setprop debug.mono.env MONO_DEBUG=soft-breakpoints,但没有成功。尝试使用不同的
Android API's Versions进行编译
知道为什么会这样吗??
这是我的代码:
public void start()
{
for (int i = 0; i < 50; i++)
{
Task.Run(() => RunScanTcp());
//ThreadPool.QueueUserWorkItem(RunScanTcp);
//Thread thread = new Thread(new ThreadStart(RunScanTcp));
//thread.Start();
}
}
public void RunScanTcp()
{
while (abort != true)
{
port = port + 1;
Log.Info("PORT SCANNER", port.ToString());
}
}
public class PortList
{
private int start;
private int stop;
private int ports;
private static readonly object _syncRoot = new object();
public PortList(int starts, int stops)
{
start = starts;
stop = stops;
ports = start;
}
public bool MorePorts()
{
lock (_syncRoot)
{
return (stop - ports) >= 0;
}
}
public int NextPort()
{
lock (_syncRoot)
{
if (MorePorts())
{
return ports++;
}
return -1;
}
}
}
我正在编译使用:
Android Version (Android 7.1 Nougat)
最低安卓版本:
Android 4.1 (API Level 16 - Jelly Bean)
目标安卓版本:
Compile Using SDK Version
更新:
在 Visual Studio Update 15.2 (26430.12) 和 Xamarin 4.5.0.476 - 30/05/2017(dd/mm/yyyy) 之后,应用程序 crashed 同时也是 connected to debugger...
这是调试器的输出:
referenceTable GDEF length=814 1
referenceTable GSUB length=11364 1
referenceTable GPOS length=47302 1
referenceTable head length=54 1
referenceTable GDEF length=428 1
referenceTable GSUB length=2302 1
referenceTable GPOS length=43252 1
referenceTable head length=54 1
referenceTable GDEF length=808 1
referenceTable GSUB length=11364 1
referenceTable GPOS length=49128 1
referenceTable head length=54 1
referenceTable GDEF length=808 1
referenceTable GSUB length=11364 1
referenceTable GPOS length=47320 1
referenceTable head length=54 1
05-31 04:31:51.590 F/art (17427): art/runtime/fault_handler.cc:117] Check failed: !initialized_
谢谢大家...
【问题讨论】:
-
您是否尝试在 Android 构建选项的高级选项卡中检查“arm64-v8a”?
-
@GraceFeng-MSFT 是的,我试过了,又是同样的情况......
-
您是否为您的发布版本启用了 proguard?
-
@HarisQureshi,我试过启用和禁用proguard,它是一样的,它仍然崩溃......
-
如果你只创建 1 个任务而不是 50 个呢?此外,在你的任务循环中添加一个 Thread.Sleep() 怎么样?
标签: c# android xamarin mono xamarin.android