La section Questions et réponses de la communauté Audiokinetic est un forum où les utilisateurs de Wwise et de Strata peuvent poser des questions et répondre à celles des autres membres de la communauté. Si vous souhaitez obtenir une réponse de la part de l'équipe de soutien technique d'Audiokinetic, veillez à utiliser le formulaire de Tickets de Soutien.

unity crash when exit the application in play-in-editor using AkTerminator.cs

+4 votes
this is the dump, how can I resolve it?

AkSoundEngine.dll!tlsf_free(void * tlsf, void * ptr) 行 1034    C++
AkSoundEngine.dll!AK::MemoryMgr::Free(long in_PoolId, void * in_pvMemAddress) 行 593    C++
AkSoundEngine.dll!AK::SoundEngine::Term() 行 690    C++
AkSoundEngine.dll!Term() 行 466    C++
demandé 16-Avr-2017 dans General Discussion par evan c. (140 points)

3 Réponses

+2 votes
Hi,

There is the full stack from Unity 5.6.1f1 and Wwise 2016.2.2. We are facing the exact same issue since months and it occurs really often after hitting stop in the editor.

========== OUTPUTING STACK TRACE ==================

0x00007FF8FAF8C68B (AkSoundEngine) AK::MemoryMgr::Term
0x00007FF8FAF8B639 (AkSoundEngine) AK::MemoryMgr::Free
0x00007FF8FAEB80A3 (AkSoundEngine) AK::SoundEngine::Term
  ERROR: SymGetSymFromAddr64, GetLastError: 'Tentative d’accès à une adresse non valide.' (Address: 00007FF8FAEA4A99)
0x00007FF8FAEA4A99 (AkSoundEngine)
0x00000000311E631D (Mono JIT Code) (wrapper managed-to-native) AkSoundEnginePINVOKE:CSharp_Term ()
0x00000000311E61FF (Mono JIT Code) [C:\Depots\PaperBeast\Assets\Standard Assets\ThirdParty\Wwise\Deployment\API\Generated\Windows\AkSoundEngine_Windows.cs:2474] AkSoundEngine:Term ()
0x00000000311E4AE4 (Mono JIT Code) [C:\Depots\PaperBeast\Assets\Standard Assets\ThirdParty\Wwise\Deployment\Components\AkTerminator.cs:93] AkTerminator:Terminate ()
0x00000000311E414C (Mono JIT Code) [C:\Depots\PaperBeast\Assets\Standard Assets\ThirdParty\Wwise\Deployment\Components\AkTerminator.cs:43] AkTerminator:OnApplicationQuit ()
0x0000000000947112 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FF8E3675737 (mono) [c:\buildslave\mono\build\mono\mini\mini.c:4937] mono_jit_runtime_invoke
0x00007FF8E35C8435 (mono) [c:\buildslave\mono\build\mono\metadata\object.c:2623] mono_runtime_invoke
0x00000001410645B5 (Unity) scripting_method_invoke
0x0000000141059DF1 (Unity) ScriptingInvocation::Invoke
0x000000014149D769 (Unity) MonoBehaviour::HandleNotifications
0x0000000140906FA0 (Unity) GameObject::SendMessageAny
0x0000000140D5C768 (Unity) SendMessageToEveryone
0x000000014148121F (Unity) NotifyPlayerQuit
0x0000000141724421 (Unity) Application::ExitPlayMode
0x00000001417248B3 (Unity) Application::SetIsPlaying
0x0000000141725412 (Unity) Application::TickTimer
0x00000001417F0ABC (Unity) CrashCallback
0x00000001417F2704 (Unity) WinMain
0x0000000141AD7444 (Unity) strnlen
0x00007FF92B372774 (KERNEL32) BaseThreadInitThunk
0x00007FF92D710D61 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========
répondu 2-Jun-2017 par Sébastien C. (760 points)
We're experiencing the same thing; frequent crashes when using the stop button in editor. We're using Unity 5.6.1p1 and Wwise v2016.2.3.

Here's our stack trace:

========== OUTPUTING STACK TRACE ==================

0x00007FF89179C73B (AkSoundEngine) AK::MemoryMgr::Term
0x00007FF89179B6E9 (AkSoundEngine) AK::MemoryMgr::Free
0x00007FF8916C81F3 (AkSoundEngine) AK::SoundEngine::Term
  ERROR: SymGetSymFromAddr64, GetLastError: 'Attempt to access invalid address.' (Address: 00007FF8916B4BB9)
0x00007FF8916B4BB9 (AkSoundEngine)
0x0000000068D88D4D (Mono JIT Code) (wrapper managed-to-native) AkSoundEnginePINVOKE:CSharp_Term ()
0x0000000068D88C2A (Mono JIT Code) [C:\Dev\Fortune\Trunk\Client\Assets\Wwise\Deployment\API\Generated\Windows\AkSoundEngine_Windows.cs:2446] AkSoundEngine:Term ()
0x0000000068D86FD0 (Mono JIT Code) [C:\Dev\Fortune\Trunk\Client\Assets\Wwise\Deployment\Components\AkTerminator.cs:93] AkTerminator:Terminate ()
0x0000000068D86847 (Mono JIT Code) [C:\Dev\Fortune\Trunk\Client\Assets\Wwise\Deployment\Components\AkTerminator.cs:43] AkTerminator:OnApplicationQuit ()
0x0000000012647382 (Mono JIT Code) (wrapper runtime-invoke) object:runtime_invoke_void__this__ (object,intptr,intptr,intptr)
0x00007FF894565737 (mono) [c:\buildslave\mono\build\mono\mini\mini.c:4937] mono_jit_runtime_invoke
0x00007FF8944B8435 (mono) [c:\buildslave\mono\build\mono\metadata\object.c:2623] mono_runtime_invoke
0x00000001410688B5 (Unity) scripting_method_invoke
0x000000014105E1A1 (Unity) ScriptingInvocation::Invoke
0x00000001414A4629 (Unity) MonoBehaviour::HandleNotifications
0x0000000140906DF0 (Unity) GameObject::SendMessageAny
0x0000000140D60308 (Unity) SendMessageToEveryone
0x000000014148835F (Unity) NotifyPlayerQuit
0x000000014172C4D1 (Unity) Application::ExitPlayMode
0x000000014172C963 (Unity) Application::SetIsPlaying
0x000000014172D4C2 (Unity) Application::TickTimer
0x00000001417F94DC (Unity) CrashCallback
0x00000001417FB124 (Unity) WinMain
0x0000000141AE063C (Unity) strnlen
0x00007FF8C3E08364 (KERNEL32) BaseThreadInitThunk
0x00007FF8C41770D1 (ntdll) RtlUserThreadStart

========== END OF STACKTRACE ===========
And the issue is present since december, still without any official answer : https://www.audiokinetic.com/qa/2973/unity-play-editor-wwise-crash-hitting-button-akterminator?show=2973#q2973
For us the issue was that on the scene that will be loaded first the WwiseGlobal is not on the root of the scene but on a parent (in order to organize stuff). Because of that DontDestroyOnLoad won't be effective, and when loading a new scene the previous wwiseglobal will be destroyed. This caused the crash. So removing it from being under a parent solved the issue.
0 votes
Not sure if this will help with your issue, but for us it turned out that there was a second AkInitializer being created sometimes when the editor was exiting. I added a breakpoint in AkInitializer.Initialise() and saw that we had a lazy initiializer which was recreating our AudioManager object  within an OnDisable() method of a MonoBehaviour. According to Audiokinetic such a call-stack can be indicative of having two such objects.

Also double check that you're either using the WwiseGlobal game object or creating your own AkInitializer and not both.
répondu 24-Jul-2017 par PeteGunterMediatonic (180 points)
+1 vote
Ok, I found a fix for this crash!

Add this in AKTerminator.cs:

    void OnEnable()
    {       
        //The sound engine was not terminated normally.  Make this instance the one that will manage termination.
        //This happen when Unity resets everything when a script changes.
        if (ms_Instance == null && AkSoundEngine.IsInitialized())
        {
            ms_Instance = this;
        }
    }
répondu 26-Sep-2017 par Olivier F. (230 points)
...