I can connect to voice channels in Unity Editor but not in Build

I’m using the VR multiplayer template included with Unity 6, and for some reason when I try it in the Editor, it works fine. I seem to connect to Vivox just fine, although I can’t actually test to see if my voice is working. It says it’s connected and the mic icon is turning green when I talk.

When I build it and run it on my Quest, however, I don’t seem to be able to connect to the Vivox channel. The settings page says “Voice Chat: Logging into Voice Service” and it never connects. I then don’t see the mic icon turning green when I talk.

I’ve set audio and microphone permissions. I’ve tried using a mobile hotspot and other people have the same issue with the build, so it’s not a port-related problem.

Here’s my AndroidManifest.XML:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:installLocation="auto">
  <application android:label="@string/app_name" android:icon="@mipmap/app_icon" android:allowBackup="false">
    <activity android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" android:configChanges="locale|fontScale|keyboard|keyboardHidden|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:launchMode="singleTask" android:name="com.unity3d.player.UnityPlayerGameActivity" android:excludeFromRecents="true" android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="com.oculus.intent.category.VR" />
      </intent-filter>
      <meta-data android:name="com.oculus.vr.focusaware" android:value="true" />
    </activity>
    <meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="false" />
    <meta-data android:name="com.samsung.android.vr.application.mode" android:value="vr_only" />
    <meta-data android:name="com.oculus.ossplash.background" android:value="black" />
    <meta-data android:name="com.oculus.telemetry.project_guid" android:value="9506946f-e80d-41d7-b87b-4af2f0a0630b" />
    <meta-data android:name="com.oculus.supportedDevices" android:value="quest2|questpro|quest3|quest3s" tools:replace="android:value" />
  </application>
  <uses-feature android:name="android.hardware.vr.headtracking" android:version="1" android:required="true" />
  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.RECORD_AUDIO" />
  <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
  <uses-permission android:name="android.permission.MICROPHONE" />
  <uses-feature android:name="android.hardware.microphone" android:required="true" />
</manifest>

Through extensive debug printing, I have identified that the reason I never connect is this line of code, which is called but never completes. I can’t find a definition anywhere.

await VivoxService.Instance.InitializeAsync();

For anyone who has this issue in the future, my issue was that minify was deleting my vivox files, as per this thread: VivoxNative Class Not Found Exception