将 android 应用程序从 API 24 升级到 26 时出现致命信号 31 错误
Fatal Signal 31 error when upgrading android app from API 24 to 26
我收到这个错误 -
A/libc: Fatal signal 31 (SIGSYS), code 1 in tid 4168 (m.messagingdapp)
当我将我的应用程序从 API 24 升级到 26(必须这样做才能获得 java.nio.file 功能)。这是我在 logcat 中看到的唯一错误。它在 运行 API 24 时工作正常。访问 API 时出现错误,我在这一行上使用名为 go-ethereum -
String f = this.getFilesDir() + "/.ethereum";
Long n = Geth.LightScryptN;
Long p = Geth.LightScryptP;
AccountManager am = Geth.newAccountManager(f, n, p); //HERE
下拉菜单中 logcat 的不同部分似乎还有很多其他错误,即 system_process。但是,我是 android 的新手,并不知道我在寻找什么(我已经分别用谷歌搜索了所有这些但没有得到解决)。谢谢。
完整的笑笑猫 -
07-25 22:17:14.774 9625-9625/? I/zygote: Not late-enabling -Xcheck:jni
(already on)
07-25 22:17:14.825 9625-9625/? W/zygote: Unexpected CPU variant for X86
using defaults: x86
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Class android.support.v4.util.SimpleArrayMap failed lock verification
and will run slower.
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Common causes for lock verification issues are non-optimized dex code
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
and incorrect proguard optimizations.
07-25 22:17:15.184 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Class cz.msebera.android.httpclient.conn.util.PublicSuffixMatcherLoader
failed lock verification and will run slower.
07-25 22:17:15.191 9625-9625/benkrarup.ethereum.messagingdapp
D/NetworkSecurityConfig: No Network Security Config specified, using
platform default
07-25 22:17:15.216 9625-9625/benkrarup.ethereum.messagingdapp
W/Java7Support: Unable to load JDK7 types (annotations,
java.nio.file.Path): no Java7 support added
07-25 22:17:15.596 9625-9657/benkrarup.ethereum.messagingdapp A/libc:
Fatal signal 31 (SIGSYS), code 1 in tid 9657 (m.messagingdapp)
Android 8 O (SDK 26) 通过在 Linux 内核中启用名为 secure computing 的功能来限制允许哪些系统调用出于安全原因。
这意味着只能执行列入白名单的调用,任何其他调用都会导致 signal 31 (SIGSYS), code 1 (SYS_SECCOMP)
,就像您正在经历的那样。您将需要检查此信号的堆栈跟踪以找出不允许的系统调用(您的问题中未完整列出)。
您可以找到允许调用的列表 here。不允许任何其他调用。
您可以找到 Google 写的关于此 here 的内容。
我收到这个错误 -
A/libc: Fatal signal 31 (SIGSYS), code 1 in tid 4168 (m.messagingdapp)
当我将我的应用程序从 API 24 升级到 26(必须这样做才能获得 java.nio.file 功能)。这是我在 logcat 中看到的唯一错误。它在 运行 API 24 时工作正常。访问 API 时出现错误,我在这一行上使用名为 go-ethereum -
String f = this.getFilesDir() + "/.ethereum";
Long n = Geth.LightScryptN;
Long p = Geth.LightScryptP;
AccountManager am = Geth.newAccountManager(f, n, p); //HERE
下拉菜单中 logcat 的不同部分似乎还有很多其他错误,即 system_process。但是,我是 android 的新手,并不知道我在寻找什么(我已经分别用谷歌搜索了所有这些但没有得到解决)。谢谢。
完整的笑笑猫 -
07-25 22:17:14.774 9625-9625/? I/zygote: Not late-enabling -Xcheck:jni
(already on)
07-25 22:17:14.825 9625-9625/? W/zygote: Unexpected CPU variant for X86
using defaults: x86
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Class android.support.v4.util.SimpleArrayMap failed lock verification
and will run slower.
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Common causes for lock verification issues are non-optimized dex code
07-25 22:17:15.181 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
and incorrect proguard optimizations.
07-25 22:17:15.184 9625-9625/benkrarup.ethereum.messagingdapp W/zygote:
Class cz.msebera.android.httpclient.conn.util.PublicSuffixMatcherLoader
failed lock verification and will run slower.
07-25 22:17:15.191 9625-9625/benkrarup.ethereum.messagingdapp
D/NetworkSecurityConfig: No Network Security Config specified, using
platform default
07-25 22:17:15.216 9625-9625/benkrarup.ethereum.messagingdapp
W/Java7Support: Unable to load JDK7 types (annotations,
java.nio.file.Path): no Java7 support added
07-25 22:17:15.596 9625-9657/benkrarup.ethereum.messagingdapp A/libc:
Fatal signal 31 (SIGSYS), code 1 in tid 9657 (m.messagingdapp)
Android 8 O (SDK 26) 通过在 Linux 内核中启用名为 secure computing 的功能来限制允许哪些系统调用出于安全原因。
这意味着只能执行列入白名单的调用,任何其他调用都会导致 signal 31 (SIGSYS), code 1 (SYS_SECCOMP)
,就像您正在经历的那样。您将需要检查此信号的堆栈跟踪以找出不允许的系统调用(您的问题中未完整列出)。
您可以找到允许调用的列表 here。不允许任何其他调用。
您可以找到 Google 写的关于此 here 的内容。