将Android应用程序从API 24升级到26时出现致命信号31错误

时间:2017-07-25 21:08:42

标签: android upgrade ethereum android-8.0-oreo

我收到此错误 -

"if input is x AND choice is y, OR if...."

当我将我的应用程序从API 24升级到26时(必须要获取java.nio.file功能)。这是我在logcat中看到的唯一错误。它在使用API​​ 24运行时工作正常。访问我在此行使用名为go-ethereum的API时会出错。

A/libc: Fatal signal 31 (SIGSYS), code 1 in tid 4168 (m.messagingdapp) 

在下拉菜单中,logcat的不同部分似乎还有很多其他错误,即system_process。但是,我是Android的新手,并不知道我在寻找什么(我已经分别搜索了所有这些,但没有得到修复)。感谢。

完整的lolcat -

String f = this.getFilesDir() + "/.ethereum";
Long n = Geth.LightScryptN;
Long p = Geth.LightScryptP;
AccountManager am = Geth.newAccountManager(f, n, p); //HERE

1 个答案:

答案 0 :(得分:3)

Android 8 O(SDK 26)通过在Linux内核中启用名为secure computing的功能,限制了出于安全原因允许的系统调用。

这意味着只能执行列入白名单的通话,而任何其他通话都会产生signal 31 (SIGSYS), code 1 (SYS_SECCOMP),就像您遇到的那样。您需要检查此信号的堆栈跟踪,以找出不允许的系统调用(未在您的问题中完整列出)。

您可以找到允许来电here的列表。不允许任何其他电话。

您可以找到Google撰写的关于此here的内容。