簡體   English   中英

無法通過appium在android模擬器中啟動計算器

[英]Failed to launch calculator in android emulator through appium

我只是創建以下示例代碼,用於啟動計算器apk文件並執行一些任務

@BeforeSuite
    public static void driverInitalize() throws Exception {
        try {

            DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setCapability("deviceName", "Android Emulator");
            capabilities.setCapability("platformName", "Android");
            capabilities.setCapability("platformVersion", "4.2.2");
            // capabilities.setCapability("browserName", "Chrome");
            capabilities.setCapability("appPackage", "com.android.calculator2");
            capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");
            capabilities
                    .setCapability("app",
                            "C:\\Ecare\\Appium\\com.android.calculator2-5.1-1720659-22-minAPI22.apk");
            driver = new RemoteWebDriver(
                    new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    @Test
    public static void sampleTest1() throws Exception {
        try {

            // System.out.println(driver.getTitle());
            driver.findElement(By.xpath(".//*[contains(text(),'7')]")).click();
            driver.findElement(By.xpath(".//*[contains(text(),'+')]")).click();
            driver.findElement(By.xpath(".//*[contains(text(),'3')]")).click();
            driver.findElement(By.xpath(".//*[contains(text(),'=')]")).click();
            String value = driver.findElement(
                    By.className("android.widget.EditText")).getText();
            System.out.print(value);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    @AfterSuite
    public static void tearDown() throws Exception {
        try {

            driver.quit();

        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

每當執行以上代碼時,appium服務器以及Eclipse IDE中都會返回以下異常。 有人可以告訴我如何克服這個問題。 這似乎是會話正在進行中,但是我不確定如何終止較早開始的進度會話。 我試圖以appium --no-reset的形式啟動appium服務器,並檢查了覆蓋現有會話,但是沒有運氣。

 Failure [INSTALL_FAILED_OLDER_SDK]
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:1358:17
>     at [object Object].<anonymous> (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:180:9)
>     at ChildProcess.exithandler (child_process.js:635:7)
>     at ChildProcess.EventEmitter.emit (events.js:98:17)
>     at maybeClose (child_process.js:743:16)
>     at Process.ChildProcess._handle.onexit (child_process.js:810:5)
> info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Remote install failed: pkg: /data/local/tmp/b23beec2f0794d869eb021f75e3791bd.apk\r\r\nFailure [INSTALL_FAILED_OLDER_SDK])","origValue":"Remote install failed: pkg: /data/local/tmp/b23beec2f0794d869eb021f75e3791bd.apk\r\r\nFailure [INSTALL_FAILED_OLDER_SDK]"},"sessionId":null}
> info: <-- POST /wd/hub/session 500 39088.716 ms - 362 

請幫幫我。

您收到[INSTALL_FAILED_OLDER_SDK]的錯誤是由於您的avd /設備的android版本比用於編譯應用程序代碼的版本舊。 檢查應用程序的目標sdk版本和最低sdk版本。

如果您有權訪問該應用程序的源代碼,則這些信息將位於android:minSdkVersion標簽中的清單文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM