失败[INSTALL_FAILED_VERSION_DOWNGRADE]

问题描述:

我最近接手了一个使用Appium进行自动移动测试的项目。我有几个Python脚本应该与Appium一起运行,但试图运行它们时,我遇到了“[INSTALL_FAILED_VERSION_DOWNGRADE]”。在对此事进行了大量研究之后,我已经说明这是与Android相关的问题,并且是APK版本。然而,我对Android很陌生,所以这让我们很难完全理解Appium和Android正在做什么。当我尝试将应用程序安装到设备时,我更倾向于遇到问题,但是我觉得我已经解决了解决问题的步骤。一些示例确保我拥有最新版本的应用程序,卸载应用程序,重新安装旧版本的应用程序,并最终检查更新。失败[INSTALL_FAILED_VERSION_DOWNGRADE]

Python脚本回溯:

Traceback (most recent call last): 
    File "main.py", line 310, in <module> 
    launch() 
    File "main.py", line 26, in launch 
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) 
    File "C:\Python\lib\site-packages\appium\webdriver\webdriver.py", line 36, in __init__ 
    super(WebDriver, self).__init__(command_executor, desired_capabilities, browser_profile, proxy, keep_alive) 
    File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 151, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
    File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 240, in start_session 
    response = self.execute(Command.NEW_SESSION, parameters) 
    File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 308, in execute 
    self.error_handler.check_response(response) 
    File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Original error: Command failed: C:\AndroidSDK\platform-tools\adb.exe -s GCNPCX031761JAV install "C:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk" 
Failed to install C:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE] 
) 

Appium控制台:

error: Failed to start an Appium session, err was: Error: Command failed: C:\AndroidSDK\platform-tools\adb.exe -s GCNPCX031761JAV install "C:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk" 
Failed to install C:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE] 

info: [debug] Error: Command failed: C:\AndroidSDK\platform-tools\adb.exe -s GCNPCX031761JAV install "C:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk" 
Failed to install C:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE] 

    at ChildProcess.exithandler (child_process.js:204:12) 
    at emitTwo (events.js:106:13) 
    at ChildProcess.emit (events.js:191:7) 
    at maybeClose (internal/child_process.js:891:16) 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) 
info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Command failed: C:\\AndroidSDK\\platform-tools\\adb.exe -s GCNPCX031761JAV install \"C:\\Appium\\node_modules\\appium\\build\\settings_apk\\settings_apk-debug.apk\"\nFailed to install C:\\Appium\\node_modules\\appium\\build\\settings_apk\\settings_apk-debug.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE]\r\n)","killed":false,"code":1,"signal":null,"cmd":"C:\\AndroidSDK\\platform-tools\\adb.exe -s GCNPCX031761JAV install \"C:\\Appium\\node_modules\\appium\\build\\settings_apk\\settings_apk-debug.apk\"","origValue":"Command failed: C:\\AndroidSDK\\platform-tools\\adb.exe -s GCNPCX031761JAV install \"C:\\Appium\\node_modules\\appium\\build\\settings_apk\\settings_apk-debug.apk\"\nFailed to install 
C:\\Appium\\node_modules\\appium\\build\\settings_apk\\settings_apk-debug.apk: Failure [INSTALL_FAILED_VERSION_DOWNGRADE]\r\n"},"sessionId":null} 

更新:我重新启动我的电脑,并再次运行它,它摆脱了[INSTALL_FAILED_VERSION_DOWNGRADE],但现在的我越来越

Traceback (most recent call last): 
    File "main.py", line 310, in <module> 
    launch() 
    File "main.py", line 26, in launch 
    driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) 
    File "C:\Python\lib\site-packages\appium\webdriver\webdriver.py", line 36, in __init__ 
    super(WebDriver, self).__init__(command_executor, desired_capabilities, browser_profile, proxy, keep_alive) 
    File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 151, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
    File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 240, in start_session 
    response = self.execute(Command.NEW_SESSION, parameters) 
    File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 308, in execute 
    self.error_handler.check_response(response) 
    File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Error occured while starting App. Original error: Error executing adbExec. Original error: 'Command 'C\:\\AndroidSDK\\platform-tools\\adb.exe -P 5037 -s GCNPCX031761JAV shell am start -W -n com.rockfordfosgate.perfecttune/com.rockfordfosgate.perfecttune.activity.HomeActivity -S' exited with code 1'; Stderr: 'java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.rockfordfosgate.perfecttune/.activity.HomeActivity } from null (pid=10837, uid=2000) not exported from uid 10127 
     at android.os.Parcel.readException(Parcel.java:1683) 
     at android.os.Parcel.readException(Parcel.java:1636) 
     at android.app.ActivityManagerProxy.startActivityAndWait(ActivityManagerNative.java:3352) 
     at com.android.commands.am.Am.runStart(Am.java:630) 
     at com.android.commands.am.Am.onRun(Am.java:388) 
     at com.android.internal.os.BaseCommand.run(BaseCommand.java:51) 
     at com.android.commands.am.Am.main(Am.java:121) 
     at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 
     at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:294)'; Code: '1' 

Whic h似乎是ADB的权限问题。

你所面临的第一个问题([INSTALL_FAILED_VERSION_DOWNGRADE])被固定在最近Appium服务器版本1.7.1 所以如果您正在使用最新的服务器没有必要寻找解决方法。

的不是第二个问题能​​够启动意图更像是Android应用manifext.xml文件的问题,你选择了它如何可以固定here

也许应用程序无法正确卸载,尝试运行命令:

adb shell pm uninstall com.xxx.xxx 

将“com.xxx.xxx”替换为您的软件包名称。