常见异常处理

最近更新时间:2018-01-08 15:59:08

查看pdf

加入房间超时问题如何解决?

加入房间超时有多种原因,请对应解决:

  1. 游戏 Key 和游戏 ID 不匹配;
  2. 没有在 GCloud 官网开通服务;
  3. 网络不通;
  4. 测试环境,DAU 超过了 100 的限制。

在 Editor 和 PC 上,取消 x86 是 OK,但取消 x86_64 会找不到 dll,应该怎么解决?

x86 的配置成 x86 的,64 配置成 64 的。 Unity64 位默认会找 64 位的 dll,不能取消,否则 Editor 运行就会报 dllnotfound。

打开麦克风之后,游戏背景音乐变得很小声,是什么原因?

属于正常现象,开麦克风后,为了消除回声、优化实时交流体验,会进入 VoIP 通话模式,游戏背景音会变小。

Android OpenMic 失败或者返回GCLOUD_VOICE_INTERNAL_TVE_ERR = 0x5001, //20481, internal TVE err, our used以及GCLOUD_VOICE_PERMISSION_MIC_ERR = 0x3003, //12291, you have not right to access micphone in android, 应如何解决?

  1. 确认 Java 中有没调用 GCloudVoiceEngine 的 init 方法,如下图所示:
  2. 确认下 android.support.v4.jar 的版本,因为语音引擎中使用了相关函数检查麦克风权限,因此需要确保该 jar 包版本在 6.0 以上,否则,在 Android 6.0 上开麦克风会返回GCLOUD_VOICE_PERMISSION_MIC_ERR失败码。

Xcode 连接提示找不到 SDK 里面函数的实现,并有提示 x86,是什么原因?

SDK 不支持 Xcode 模拟器调试,需要插入真机或者选择 Generic iOS Device

Android 部分较老的手机上出现cant find library的出错提示,是什么原因?

需要在 ApplicationAvtivity 里面做"System.loadLibrary("GCloudVoice")"操作,示例代码:

static {
            try {
                 System.loadLibrary("GCloudVoice");
       } catch (UnsatisfiedLinkError e) {
              System.err.println("load library failed!!!");
       }
     }

Android 手机上出现Cant find method ApolloVoiceUUID日志,是什么原因?

检查 SDK 的 jar 包和.so文件是否来自同一个版本。

Android 手机上出现Can't Read config files的异常日志,是什么问题?

Android 检查 Assets 目录是否正常合入,iOS 检查 Bundle 文件是否加入到 Xcode 工程中。

自行修改 AudioSession 会影响语音功能吗?

会。因为 AudioSession 是 App 单例,所以会影响功能使用。

如何实现文档中 Unity 接入的第二步:修改 Java 文件?

有两种方案,任选其一即可:

  • 把 Unity 导出一个 Android 工程,然后在里面修改 Java 代码。
  • 第二种是按照 Unity 插件的形式,在 Plugins/Android 目录下放一个集成了 UnityPlayerActivity 的 ApplicationActiviy 的类,然后在里面实现。

iOS 链接报错:dumplicate symbol * in: /libGCloudVoice.a(.o), 应该如何解决?

工程设置中的 other link flag 不要使用 all_load,若有其他库需要使用 all-load,可以使用 force_load 链接相关库。

iOS 接入后运行崩溃,是什么原因?

在 iOS10.0 及以上系统需要在工程 Info.plist 中添加权限 Privacy - Microphone Useage DescriptioniOS 接入为静态库容易与其他语音相关组件发生函数同名导致调用过程中出错,因此建议接入时检查之前接入组件是否已经删除。

两人加入同一房间后听不到对方说话;

  1. 确认两人加入的是同一个房间。
  2. 确认说话方打开了麦克风和收听方打开了扬声器。
  3. 两个加入同一房间是否用了同样的 OpenId(在 SetAppInfo 中设置),请确保进入同一房间的用户具有不同的 OpenId。

录音上传提示失败,应该如何处理?

参考日志,若发现文件长度为 0,请查看所给路径是否存在,同时要保证目录已经创建;路径要具体到文件名,如/sdcard/com.qq.gcloud/voice/11.dat

Unity 加入房间成功,iOS 平台上有调用 Poll,但是收不到回调信息?应该如何处理?

这个问题会在 Unity5.5 版本出现,主要是因为Unity5.5 平台有改动,导致 Poll 失效,更新到最新版本 GVoice 即可。

调用 JoinRoom、QuitRoom、ApplyMessageKey 等相关函数后,没有回调,是什么问题?

检查是否有持续调用 Poll 函数,来驱动获取回调消息。

DownloadRecordFile 出错, log 出现response status = 400 Bad Request,是什么原因?

很有可能是传入的 FileID 非法,可通过 HardCode 一个合法的 FileID 来验证。

Mac 下 Unity 中 Editor 直接运行,提示 DLlNotFound 错误,是什么原因?

目前不支持 Mac 下直接运行 Unity Editor 调试,可在 Windows 下 Unity Editor 来调试。

Windows 中运行 Unity Editor 调试时,提示 DllNotFound 错误,应该如何处理?

请查看 Unity 工程对应目录中是否有添加 x86 和 x86_64 文件、里面是否有 dll 和 dll 配置是否如图所示:
dll1
dll2

程序运行时崩溃,提示findclass error,应该如何处理?

将 Apk 反编译,确定 GCloudVoice.jar 已经编译到 Apk 中了。

iOS 编译报错,应该如何处理?

查看是否有链接系统库:
链接系统库

iOS 接入后运行崩溃,是什么原因?

在 iOS10.0 及以上系统需要在工程 Info.plist 中添加权限 Privacy-Microphone Useage DescriptioniOS,接入为静态库容易与其他语音相关组件发生函数同名导致调用过程中出错,因此建议接入时检查之前接入组件是否已经删除。
接入插件1
接入插件2

调用 SpeechToText,回调返回GV_ON_STT_APIERR结果

  1. 请确认翻译的录音文件是在 SetMode(GCloudVoiceMode.Translation) 模式下录制的。
  2. 若还是返回错误,请取下 log 联系并发送给我们定位问题。

libGCloudVoice.so not found问题截图如下,该如何解决?

  1. 将 system.loadlibrary 加到 activity 里, 放在 libMyGame.so 加载之前,代码如下:
    static {
    System.loadLibrary("GCloudVoice");
    }
    

错误提示no such file or direcory,是什么原因?

凡是提示no such file or direcory:xxxxx,都表明没有相关文件,缺乏相关文件。请检查相关文件路径是否正确。

Unity 使用 il2cpp 编译,用gcloud_voice.GCloudVoiceEngine.GetFileParam 获取的时间长度为 0,可能的原因有哪些?

可能有以下 3 个原因:

  1. 没有给授权访问麦克风
  2. Androidmanifest.xml 中没有 record 权限
  3. 路径错误

录音失败、开麦失败如何解决?

确保有这两个权限开启:MODIFY_AUDIO_SETTINGS,RECORD_AUDIO

OpenMic 返回错误码 200,什么错误?

没有开启麦克风

applymessagekey 超时错误,是什么问题?

applymessagekey 出现超时错误,请首先确认设置的 APPID 和 Key 是否已经开通了语音服务;如果已经开通语音服务,仍出现超时错误,请检查网络是否正常。

常见异常处理

最近更新时间:2018-01-08 15:59:08

查看pdf

加入房间超时问题如何解决?

加入房间超时有多种原因,请对应解决:

  1. 游戏 Key 和游戏 ID 不匹配;
  2. 没有在 GCloud 官网开通服务;
  3. 网络不通;
  4. 测试环境,DAU 超过了 100 的限制。

在 Editor 和 PC 上,取消 x86 是 OK,但取消 x86_64 会找不到 dll,应该怎么解决?

x86 的配置成 x86 的,64 配置成 64 的。 Unity64 位默认会找 64 位的 dll,不能取消,否则 Editor 运行就会报 dllnotfound。

打开麦克风之后,游戏背景音乐变得很小声,是什么原因?

属于正常现象,开麦克风后,为了消除回声、优化实时交流体验,会进入 VoIP 通话模式,游戏背景音会变小。

Android OpenMic 失败或者返回GCLOUD_VOICE_INTERNAL_TVE_ERR = 0x5001, //20481, internal TVE err, our used以及GCLOUD_VOICE_PERMISSION_MIC_ERR = 0x3003, //12291, you have not right to access micphone in android, 应如何解决?

  1. 确认 Java 中有没调用 GCloudVoiceEngine 的 init 方法,如下图所示:
  2. 确认下 android.support.v4.jar 的版本,因为语音引擎中使用了相关函数检查麦克风权限,因此需要确保该 jar 包版本在 6.0 以上,否则,在 Android 6.0 上开麦克风会返回GCLOUD_VOICE_PERMISSION_MIC_ERR失败码。

Xcode 连接提示找不到 SDK 里面函数的实现,并有提示 x86,是什么原因?

SDK 不支持 Xcode 模拟器调试,需要插入真机或者选择 Generic iOS Device

Android 部分较老的手机上出现cant find library的出错提示,是什么原因?

需要在 ApplicationAvtivity 里面做"System.loadLibrary("GCloudVoice")"操作,示例代码:

static {
            try {
                 System.loadLibrary("GCloudVoice");
       } catch (UnsatisfiedLinkError e) {
              System.err.println("load library failed!!!");
       }
     }

Android 手机上出现Cant find method ApolloVoiceUUID日志,是什么原因?

检查 SDK 的 jar 包和.so文件是否来自同一个版本。

Android 手机上出现Can't Read config files的异常日志,是什么问题?

Android 检查 Assets 目录是否正常合入,iOS 检查 Bundle 文件是否加入到 Xcode 工程中。

自行修改 AudioSession 会影响语音功能吗?

会。因为 AudioSession 是 App 单例,所以会影响功能使用。

如何实现文档中 Unity 接入的第二步:修改 Java 文件?

有两种方案,任选其一即可:

  • 把 Unity 导出一个 Android 工程,然后在里面修改 Java 代码。
  • 第二种是按照 Unity 插件的形式,在 Plugins/Android 目录下放一个集成了 UnityPlayerActivity 的 ApplicationActiviy 的类,然后在里面实现。

iOS 链接报错:dumplicate symbol * in: /libGCloudVoice.a(.o), 应该如何解决?

工程设置中的 other link flag 不要使用 all_load,若有其他库需要使用 all-load,可以使用 force_load 链接相关库。

iOS 接入后运行崩溃,是什么原因?

在 iOS10.0 及以上系统需要在工程 Info.plist 中添加权限 Privacy - Microphone Useage DescriptioniOS 接入为静态库容易与其他语音相关组件发生函数同名导致调用过程中出错,因此建议接入时检查之前接入组件是否已经删除。

两人加入同一房间后听不到对方说话;

  1. 确认两人加入的是同一个房间。
  2. 确认说话方打开了麦克风和收听方打开了扬声器。
  3. 两个加入同一房间是否用了同样的 OpenId(在 SetAppInfo 中设置),请确保进入同一房间的用户具有不同的 OpenId。

录音上传提示失败,应该如何处理?

参考日志,若发现文件长度为 0,请查看所给路径是否存在,同时要保证目录已经创建;路径要具体到文件名,如/sdcard/com.qq.gcloud/voice/11.dat

Unity 加入房间成功,iOS 平台上有调用 Poll,但是收不到回调信息?应该如何处理?

这个问题会在 Unity5.5 版本出现,主要是因为Unity5.5 平台有改动,导致 Poll 失效,更新到最新版本 GVoice 即可。

调用 JoinRoom、QuitRoom、ApplyMessageKey 等相关函数后,没有回调,是什么问题?

检查是否有持续调用 Poll 函数,来驱动获取回调消息。

DownloadRecordFile 出错, log 出现response status = 400 Bad Request,是什么原因?

很有可能是传入的 FileID 非法,可通过 HardCode 一个合法的 FileID 来验证。

Mac 下 Unity 中 Editor 直接运行,提示 DLlNotFound 错误,是什么原因?

目前不支持 Mac 下直接运行 Unity Editor 调试,可在 Windows 下 Unity Editor 来调试。

Windows 中运行 Unity Editor 调试时,提示 DllNotFound 错误,应该如何处理?

请查看 Unity 工程对应目录中是否有添加 x86 和 x86_64 文件、里面是否有 dll 和 dll 配置是否如图所示:
dll1
dll2

程序运行时崩溃,提示findclass error,应该如何处理?

将 Apk 反编译,确定 GCloudVoice.jar 已经编译到 Apk 中了。

iOS 编译报错,应该如何处理?

查看是否有链接系统库:
链接系统库

iOS 接入后运行崩溃,是什么原因?

在 iOS10.0 及以上系统需要在工程 Info.plist 中添加权限 Privacy-Microphone Useage DescriptioniOS,接入为静态库容易与其他语音相关组件发生函数同名导致调用过程中出错,因此建议接入时检查之前接入组件是否已经删除。
接入插件1
接入插件2

调用 SpeechToText,回调返回GV_ON_STT_APIERR结果

  1. 请确认翻译的录音文件是在 SetMode(GCloudVoiceMode.Translation) 模式下录制的。
  2. 若还是返回错误,请取下 log 联系并发送给我们定位问题。

libGCloudVoice.so not found问题截图如下,该如何解决?

  1. 将 system.loadlibrary 加到 activity 里, 放在 libMyGame.so 加载之前,代码如下:
    static {
    System.loadLibrary("GCloudVoice");
    }
    

错误提示no such file or direcory,是什么原因?

凡是提示no such file or direcory:xxxxx,都表明没有相关文件,缺乏相关文件。请检查相关文件路径是否正确。

Unity 使用 il2cpp 编译,用gcloud_voice.GCloudVoiceEngine.GetFileParam 获取的时间长度为 0,可能的原因有哪些?

可能有以下 3 个原因:

  1. 没有给授权访问麦克风
  2. Androidmanifest.xml 中没有 record 权限
  3. 路径错误

录音失败、开麦失败如何解决?

确保有这两个权限开启:MODIFY_AUDIO_SETTINGS,RECORD_AUDIO

OpenMic 返回错误码 200,什么错误?

没有开启麦克风

applymessagekey 超时错误,是什么问题?

applymessagekey 出现超时错误,请首先确认设置的 APPID 和 Key 是否已经开通了语音服务;如果已经开通语音服务,仍出现超时错误,请检查网络是否正常。