大佬们救救救救 2025-10-05 20:27 采纳率: 0%
浏览 28

手机安装Appium Settings后闪退

在设置完appium inspector参数连接手机下载移动端两个app的时候弹出了这种报错,换了两个手机(一个是华为一个是OPPO备用机)都不行,手机的appium setting闪退,系统不兼容问题还有救吗😭

下载了apk还是闪退,想问朋友们这种情况怎么办

img

img

  • 写回答

3条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-10-05 20:38
    关注

    让【宝码香车】来帮您解答,本回答参考DeepSeek编写,并整理提供。

    如果答案让您满意,请采纳、点赞、关注,非常感谢!
    .
    每日一句正能量,让它带给您好心情:努力的人,运气都不会太差。
    .

    根据你提供的错误信息和描述,这个问题主要是由于权限不足导致的。Appium Settings 需要 WRITE_SECURE_SETTINGS 权限来修改系统设置,但在普通 Android 设备上,这个权限通常只授予系统应用。

    问题分析

    从错误日志可以看到:

    java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
    

    这表明 Appium 尝试执行 adb shell settings delete 命令时被系统拒绝。

    解决方案

    方案1:使用开发者选项授权(推荐)

    1. 开启USB调试(安全设置)
    • 进入手机 设置 > 关于手机,连续点击 版本号 7次开启开发者模式
    • 进入 设置 > 系统和更新 > 开发人员选项
    • 开启 USB调试USB调试(安全设置)
    • 找到 禁止权限监控 并关闭(如果有的话)
    1. 授予ADB权限
      adb shell pm grant io.appium.settings android.permission.WRITE_SECURE_SETTINGS
    

    方案2:修改Appium配置

    在你的 capabilities 中添加以下配置:

    {
      "platformName": "Android",
      "appium:automationName": "UiAutomator2",
      "appium:deviceName": "PDKMO00",
      "appium:platformVersion": "11",
      "appium:appPackage": "com.maoxiang.app",
      "appium:appActivity": ".MainActivity",
      "appium:noReset": true,
      "appium:skipUnlock": true,
      "appium:skipDeviceInitialization": true,
      "appium:dontStopAppOnReset": true,
      "appium:autoGrantPermissions": true,
      // 添加以下配置
      "appium:disableWindowAnimation": true,
      "appium:adbExecTimeout": 60000,
      "appium:ignoreHiddenApiPolicyError": true
    }
    

    方案3:手动安装和配置Appium Settings

    1. 卸载现有的Appium Settings
      adb uninstall io.appium.settings
    
    1. 重新安装最新版本
      # 下载最新版Appium Settings APK
      adb install appium-settings.apk
    
    1. 手动授予权限
      adb shell pm grant io.appium.settings android.permission.WRITE_SECURE_SETTINGS
      adb shell pm grant io.appium.settings android.permission.ACCESS_FINE_LOCATION
      adb shell pm grant io.appium.settings android.permission.CHANGE_WIFI_STATE
    

    方案4:针对华为/OPPO的特殊处理

    对于华为和OPPO手机,可能需要额外步骤:

    1. 关闭手机管家/安全中心的权限监控
    2. 在设置中允许Appium Settings的悬浮窗权限
    3. 关闭电池优化:设置 > 应用 > 特殊应用权限 > 电池优化

    方案5:降级Appium版本

    如果以上方法都不行,可以尝试使用较旧的Appium版本:

    npm uninstall -g appium
    npm install -g appium@1.22.3
    

    验证修复

    修复后运行以下命令验证:

    adb shell settings list global | grep hidden_api_policy
    

    如果命令执行成功且没有权限错误,说明问题已解决。

    总结

    这个问题主要是由于Android系统的权限限制导致的,特别是Android 10及以上版本对系统设置的访问控制更加严格。建议按顺序尝试以上方案,通常方案1和方案2的组合就能解决问题。

    如果仍然无法解决,可以考虑使用模拟器进行测试,或者联系手机厂商获取特殊的测试权限。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月5日
  • 创建了问题 10月5日