社区问答

欢迎来到 Audiokinetic 社区问答论坛。在此,Wwise 和 Strata 用户可互帮互助。如需我们团队直接提供协助,请前往技术支持申请单页面。若要报告问题,请在 Audiokinetic Launcher 中选择“报告错误”选项(注意,问答论坛并不会接收错误报告)。我们内部设有专门的错误报告系统,会有专人查看报告并设法解决问题。

要想尽快得到满意的解答,请在提问时注意以下几点:

  • 描述尽量具体:比如,想达到什么样的目的,或者具体哪里有问题。
  • 包含关键细节:比如,Wwise 和游戏引擎版本以及所用操作系统等等。
  • 阐明所做努力:阐明自己为了排除故障都采取了哪些措施。
  • 聚焦问题本身:聚焦于问题本身的相关技术细节,以便别人可以快速找到解决方案。

+4 投票
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++
分类:General Discussion | 用户: evan c. (140 分)

3 个回答

+2 投票
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 ===========
用户: Sébastien C. (760 分)
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 投票
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.
用户: PeteGunterMediatonic (180 分)
+1 投票
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;
        }
    }
用户: Olivier F. (230 分)
...