我试图让我的应用程序在 2.2.1 设备上运行,尽管它是针对 3.1.2 SDK 构建的。
下表列出了我的结果
Deployment |Base |Device |Result
Target |SDK |Version |
-------------+------------+------------+-------
3.1.2 3.1.2 3.1.2 Runs OK
2.2.1 3.1.2 3.1.2 Runs OK
2.2.1 2.2.1 2.2.1 Runs OK
2.2.1 3.1.2 2.2.1 Builds OK, interrupt signal when run
第 3 行证明我的代码在 sdk 之间没有不兼容的。我已经删除了所有需要弱链接的东西,试图找到问题的根源。
程序开始后中断很快出现,但不是立即出现。它发生的关键在于与 3.0 特性没有任何关系的代码
它停止的那一行是一个简单的数学运算,涉及 4 个浮点数 (ab)/(c/d),其中任何一个似乎都没有问题。(它在 C++ 中)
在这些情况下还有什么可能导致中断信号?
更新:
似乎它中断的确切点是将 u64 转换为浮点数。