audio: .create voice `goldfish_audio_in' 和 Emulator: dsound: Could not initialize DirectSoundCapture...

本文解决了在使用Android虚拟设备(AVD)启动应用程序时遇到的声音错误问题,特别是Could not initialize DirectSoundCapture和No sound driver is available for use等错误。通过调整设置,成功消除了启动应用时出现的警告信息。

搞安卓的AVD 启动APP的时候,爆了一堆错误


Emulator: dsound: Could not initialize DirectSoundCapture

15:37	Emulator: dsound: Reason: No sound driver is available for use, or the given GUID is not a valid DirectSound device ID

15:37	Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

15:37	Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

15:37	Emulator: audio: Failed to create voice `goldfish_audio_in'

15:37	Emulator: D:\buildSoft\android-studio\sdk\emulator\qemu\windows-x86_64\qemu-system-i386.exe: warning: opening audio input failed

15:37	Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

15:37	Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

15:37	Emulator: audio: Failed to create voice `adc'

 

前面几个错误说是什么声音什么鬼的!!!

不过百度的时候 

audio: .create voice `goldfish_audio_in'

找到了解决办法

https://jingyan.baidu.com/article/a65957f434890a24e67f9bfc.html

解决 按照上面的方式, 之前报错的信息都没有了

 

 

 

 

 

 

转载于:https://my.oschina.net/ouminzy/blog/2980401

### Appium WebDriver 中 `TypeError` `ValueError` 的解决方案 #### 问题分析 在使用 Appium 进行移动端自动化测试时,可能会遇到两种常见的错误:`TypeError` `ValueError`。这些错误通常与网络请求配置、连接参数以及底层通信机制有关。 以下是针对这两种错误的具体原因解决方法: --- #### **1. TypeError 'request_kwargs'** 此错误通常是由于传递给 Appium 客户端的参数不匹配或不符合预期引起的。具体来说,可能是以下原因之一造成的: - 参数类型不正确。 - 配置项缺失或多余。 ##### 解决方案 确保启动会话时传递的 Desired Capabilities 是正确的,并且符合官方文档的要求[^4]。例如,检查以下常见字段是否正确设置: ```python desired_caps = { "platformName": "Android", # 或 iOS "deviceName": "emulator-5554", "appPackage": "com.example.app", "appActivity": ".MainActivity" } ``` 如果需要自定义 HTTP 请求选项(如超时时间),可以通过如下方式调整: ```python from appium import webdriver capabilities = {...} # 填充所需能力 options = { 'command_executor': 'http://localhost:4723/wd/hub', 'keep_alive': True, 'request_kwargs': {'timeout': (10, 60)} # 设置连接读取超时 } driver = webdriver.Remote(**options, desired_capabilities=capabilities) ``` 注意:`request_kwargs` 应该是一个字典对象,键值需遵循标准格式[^1]。 --- #### **2. ValueError 'connect'** 此类错误一般发生在客户端尝试建立与 Appium Server 的连接失败时。可能的原因包括但不限于: - Appium Server 未运行。 - IP 地址或端口号配置有误。 - 网络环境不稳定。 ##### 解决方案 验证 Appium Server 是否正常工作,并确认其监听地址端口无误。通过命令行启动服务并观察日志输出: ```bash appium --address 0.0.0.0 --port 4723 ``` 同时,检查代码中指定的服务 URL 是否正确: ```python url = 'http://127.0.0.1:4723/wd/hub' driver = webdriver.Remote(command_executor=url, desired_capabilities=capabilities) ``` 对于更复杂的场景(如跨设备调试或多节点部署),建议引入额外的日志记录功能以便排查问题[^3]: ```python import logging logging.basicConfig(level=logging.INFO) try: driver = webdriver.Remote(url, capabilities) except Exception as e: logging.error(f"Failed to connect: {e}") ``` --- #### **最佳实践总结** 为了减少上述两类错误的发生概率,推荐采取以下措施: 1. 对 Desired Capabilities 进行严格校验,避免遗漏必要字段。 2. 封装基础操作函数(如 `find()`、`click()` 等),统一处理异常情况[^2]。 3. 添加详细的日志信息辅助诊断问题根源。 4. 测试前先手动验证目标应用服务状态是否正常。 --- ### 示例代码 下面提供一段完整的示例代码用于演示如何优雅地捕获并处理潜在的异常: ```python from appium import webdriver import time def init_driver(): try: caps = { "platformName": "Android", "deviceName": "emulator-5554", "appPackage": "com.android.settings", "appActivity": ".Settings" } options = { 'command_executor': 'http://127.0.0.1:4723/wd/hub', 'request_kwargs': {'timeout': (10, 60)} } return webdriver.Remote(desired_capabilities=caps, **options) except Exception as err: print(f"[ERROR] Failed initializing driver: {err}") if __name__ == "__main__": driver = init_driver() if not driver: exit(1) time.sleep(5) # Wait for UI loading driver.quit() ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值