Rust catch_在打开信号中的结果时释放信号SIGABRT

Rust catch_在打开信号中的结果时释放信号SIGABRT,rust,Rust,我开发了一个Android应用程序,通过JNI调用一些Rust(稳定1.37.0)本机函数。我想抓住他们内心的恐慌,把它转换成java.lang.Error 所以,我已经读到了有关std::panic::catch_unwind的内容,并决定尝试一下。但是当我试图打开一些自定义错误时,我收到了信号致命信号6(SIGABRT),代码-6(SI_TKILL) ///某些自定义错误 #[导出(调试)] 结构MyError; MyError{}的impl错误 MyError的impl显示{ fn fmt

我开发了一个Android应用程序,通过JNI调用一些Rust(稳定1.37.0)本机函数。我想抓住他们内心的恐慌,把它转换成
java.lang.Error

所以,我已经读到了有关std::panic::catch_unwind的内容,并决定尝试一下。但是当我试图打开一些自定义错误时,我收到了
信号致命信号6(SIGABRT),代码-6(SI_TKILL)

///某些自定义错误
#[导出(调试)]
结构MyError;
MyError{}的impl错误
MyError的impl显示{

fn fmt(&self,f:&mut std::fmt::formatter您假设恐慌定义(在您的
target
Cargo.toml
中完成)设置为
panic=unwind
。检查此项;未交叉编译的锈代码的默认值为
panic=unwind
,但交叉编译的默认值为
panic=abort
,这不会触发unwind.About
Cargo.toml
。这是我的第一个想法。我在
[profile.release]
(我现在不使用调试版本)。如何在我的
目标中检查它?奇怪的是,如果我将
结果
更改为
结果
所有工作都很好,并且
捕获/释放
返回正确的错误。或者
未来
板条箱,如果我使用
未来
捕获/释放()