Nethereum 在统一编辑器中运行良好,但在 android 设备中运行不佳

Nethereum works well in unity editor, but not in android device

我正在使用 nethereum 和 unity with infura。 (我正在开发 DApp。)

我写了一些用于铸造新 NFT 的代码,并进行了测试,效果很好。

但是,构建后,它在 android 设备上不起作用。

于是我使用androidlogcat查了一个错误,但是没有报错

下面是我用来测试的异步函数,获取账户余额并保存的代码。

async Task GetBalance()
{
    Debug.Log("Before : " + balance);
    balance = await web3.Eth.GetBalance.SendRequestAsync(account.Address);
    Debug.Log("After : " + balance);
}

然后我在 IEnumerator 中执行了这段代码。

Task balanceTask = GetBalance();
yield return new WaitUntil(() => balanceTask.IsCompleted);
Debug.Log("Balance (Wei) = " + balance);
float balanceEth = (float)UnitConversion.Convert.FromWei(balance);
Debug.Log("Balance (Eth) = " + balanceEth);

结果如下。

Before : -1
Balance (Wei) = -1
Balance (Eth) = -1E -18

Balance初始值为-1,第二个Debug.Log()无效。没有什么看起来是错误的。刚刚跳过,继续

此外,我检查了infura服务器接收到的请求数量保持不变。在我看来,nethereum 无法向 infura 发送请求,这使得 Debug.Log() 被跳过....但我不知道。

我很困惑,因为它在编辑器中有效,但在设备中无效。你能给我什么建议吗?

我明白了!!在我将 Scripting Backend (unity-build settings-player settings-other settings) IL2CPP 更改为 Mono 后,没有错误,我的代码完美运行。我不知道为什么,但如果您正在为这个问题而苦恼,这可能是解决方案之一。 (也许..?)