如何使SIGABRT(信号SIGABRT)停止发生

时间:2020-08-27 22:04:31

标签: android java-native-interface unreal-engine4

我正在创建一个插件,以使用虚幻插件语言将UE4应用程序连接到android语言。 我创建了两个函数:

public void AndroidThunkJava_AndroidAPI_ShowToast(final String toast) {
    runOnUiThread(new Runnable() {
        public void run() {
            CharSequence cs = toast;
            Toast.makeText(getApplicationContext(), cs, Toast.LENGTH_LONG).show();
        }
    });
}
public void AndroidThunkJava_AndroidAPI_CheckRecording() {
    if(!isListening){
        startRecording();
        if(mRecorder.getMaxAmplitude() > 1000){
            stopRecording();
            runOnUiThread(new Runnable() {
                public void run() {
                    startSpeechRecognition();
                    speechRecognizer.startListening(speechRecognizerIntent);
                }
            });                 
        }
    }
}

绑定有效,我可以从C ++调用这两个函数。 问题是,当我调用第二个函数时,代码出现在这一部分:speechRecognizer.startListening(speechRecognizerIntent);,该应用程序刚刚停止,并且在以下线程上,AndroidStudio:SIGABRT (signal SIGABRT)上出现了以下错误:

Thread-16[Thread-542]
tgkill
pthread_kill
raise
__libc_android_abort
abort
art::Runtime::Abort()
art::LogMessage::~LogMessage()
art::JavaVMExt::JniAbort(char const*, char const*)
art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)
art::ScopedCheck::AbortF(char const*, ...)
art::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::JniValueType*) (.constprop.95)
art::CheckJNI::NewStringUTF(_JNIEnv*, char const*)
FJavaHelper::ToJavaString(_JNIEnv*, FString const&)
AndroidThunkCpp_GetMetaDataInt(FString const&)
FAndroidPlatformMemory::GetStats()
UpdateCoreCsvStats_EndFrame()
TBaseStaticDelegateInstance<void ()>::ExecuteIfSafe() const
TBaseMulticastDelegate<void>::Broadcast() const
FEngineLoop::Tick()
AndroidMain(android_app*)
android_main
android_app_entry
__pthread_start(void*)
__start_thread

当我从OnCreate调用时,startSpeechRecognitionspeechRecognizer.startListening(speechRecognizerIntent);可以这样工作:

<gameActivityOnCreateAdditions>
    <insert>
        <![CDATA[   
            startSpeechRecognition();
            speechRecognizer.startListening(speechRecognizerIntent);
        ]]>
    </insert>
</gameActivityOnCreateAdditions>

0 个答案:

没有答案