【问题标题】:Appium session, could not find a connected Android device. Shows errorAppium 会话,找不到连接的 Android 设备。显示错误
【发布时间】:2017-02-28 20:10:43
【问题描述】:

Appium 会话,找不到已连接的 Android 设备。在eclipse中显示错误

如果有人知道如何解决,请告诉我。

**Junit 代码:- **

    import static org.junit.Assert.*;
    import java.io.File;
    import java.net.MalformedURLException;
    import java.net.URL;
    import org.junit.Test;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import io.appium.java_client.android.AndroidDriver;
    import io.appium.java_client.remote.MobileCapabilityType;
    import io.appium.java_client.remote.MobilePlatform;

    public class desiredCapab {

        @Test
        public void test() throws MalformedURLException {

            File appDir = new File("C:\\Eclipse-Neon\\Project\\AppiumT\\Apk\\");

                File app = new File (appDir, "WhatsApp.apk");


            DesiredCapabilities cap = new DesiredCapabilities();
            cap.setCapability(MobileCapabilityType.PLATFORM_NAME,MobilePlatform.ANDROID);
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
cap.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());

AndroidDriver driver = new AndroidDriver(new URL ("http://127.0.0.1:4723/wd/hub"), cap);

            //{"address":"127.0.0.1","logNoColors":true,"platformName":"Android","platformVersion":"23","automationName":"Appium"}
        }
    }

Eclipse Junit 错误:-

org.openqa.selenium.SessionNotCreatedException:无法创建新会话。 (原始错误:找不到连接的 Android 设备。)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:28.61 秒 构建信息:版本:'2.49.0',修订:'365eeb4',时间:'2016-01-13 18:33:29' 系统信息:主机:'DESKTOP-PC1SJR4',ip:'192.168.1.104',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8 .0_91'

AVD 管理器设置:- 图片

Appium :- 错误信息

> info: --> POST /wd/hub/session {"desiredCapabilities":{"app":"C:\\Eclipse-Neon\\Project\\AppiumT\\Apk\\WhatsApp.apk","platformName":"Android","deviceName":"Android Emulator"}}
> info: Client User-Agent string: Apache-HttpClient/4.5.1 (Java/1.8.0_91)
> info: [debug] No appActivity desired capability or server param. Parsing from apk.
> info: [debug] No appPackage desired capability or server param. Parsing from apk.
> info: [debug] Using local app from desired caps: C:\Eclipse-Neon\Project\AppiumT\Apk\WhatsApp.apk
> info: [debug] Creating new appium session c9232f90-f519-4058-9e80-22cd2830de57
> info: Starting android appium
> info: [debug] Getting Java version
> info: Java version is: 1.8.0_101
> info: [debug] Checking whether adb is present
> info: [debug] Using adb from C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe
> info: [debug] Parsing package and activity from app manifest
> info: [debug] Checking whether aapt is present
> info: [debug] Using aapt from C:\Users\bizBoxChat\AppData\Local\Android\sdk\build-tools\24.0.3\aapt.exe
> info: [debug] Extracting package and launch activity from manifest.
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\build-tools\24.0.3\aapt.exe dump badging C:\Eclipse-Neon\Project\AppiumT\Apk\WhatsApp.apk
> info: [debug] badging package: com.whatsapp
> info: [debug] badging act: com.whatsapp.Main
> info: [debug] Parsed package and activity are: com.whatsapp/com.whatsapp.Main
> info: [debug] Using fast reset? true
> info: [debug] Preparing device for session
> info: [debug] Checking whether app is actually present
> info: Retrieving device
> info: [debug] Trying to find a connected android device
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe devices
> info: [debug] 0 device(s) connected
> info: [debug] Could not find devices, restarting adb server...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe kill-server
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe devices
> info: [debug] 0 device(s) connected
> info: [debug] Could not find devices, restarting adb server...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe kill-server
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe devices
> info: [debug] 0 device(s) connected
> info: [debug] Could not find devices, restarting adb server...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe kill-server
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe devices
> info: [debug] 0 device(s) connected
> info: [debug] Could not find devices, restarting adb server...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe kill-server
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe devices
> info: [debug] 0 device(s) connected
> info: [debug] Sent shutdown command, waiting for UiAutomator to stop...
> warn: UiAutomator did not shut down fast enough, calling it gone
> info: [debug] Cleaning up android objects
> info: [debug] Cleaning up appium session
> error: Failed to start an Appium session, err was: Error: Could not find a connected Android device.
> info: [debug] Error: Could not find a connected Android device.
>     at [object Object].ADB.getDevicesWithRetry (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:606:15)
>     at [object Object].androidCommon.prepareActiveDevice (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-common.js:400:12)
>     at [object Object].<anonymous> (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-common.js:326:26)
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:607:21
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:246:17
>     at iterate (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:146:13)
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:157:25
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:248:21
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:612:34
>     at [object Object].androidCommon.ensureDeviceLocale (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-common.js:371:45)
>     at [object Object].androidCommon.prepareEmulator (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-common.js:364:10)
>     at [object Object].<anonymous> (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-common.js:325:26)
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:607:21
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:246:17
>     at iterate (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:146:13)
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:157:25
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:248:21
>     at C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:612:34
>     at [object Object].<anonymous> (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-common.js:344:9)
>     at FSReqWrap.oncomplete (fs.js:95:15)
> info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Could not find a connected Android device.)","origValue":"Could not find a connected Android device."},"sessionId":null}
> info: <-- POST /wd/hub/session 500 28492.200 ms - 206

【问题讨论】:

标签: java android eclipse selenium junit


【解决方案1】:

上述错误的原因是,找不到任何设备或 AVD 连接。您的错误消息中的以下几行显示了这一点:

> info: [debug] Trying to find a connected android device
> info: [debug] Getting connected devices...
> info: [debug] executing cmd: C:\Users\bizBoxChat\AppData\Local\Android\sdk\platform-tools\adb.exe devices
> info: [debug] 0 device(s) connected
> info: [debug] Could not find devices, restarting adb server...

> info: [debug] Error: Could not find a connected Android device.

仅在 AVD 管理器中创建 AVD 是不够的。它必须启动并运行(启动并准备好)。为此,请在 AVD 管理器中选择任何 AVD,然后单击“开始”按钮。让 AVD 启动。等待。 (它类似于打开真实设备。) 或者,需要连接一些真实设备。在该设备中,“开发者选项”应该是开启的。 “USB 调试”应该打开。

转到命令提示符并运行以下命令:

adb devices

预期输出:某些设备或 AVD 应显示为已连接。 一旦您看到任何设备或 AVD 已连接,然后重试,您的问题就会得到解决。

注意: 在命令窗口中运行“adb devices”命令时,如果您看到类似“abd.exe 是无法识别的内部或外部命令或批处理文件...”的消息,那么您需要在路径中有 adb.exe。您可以在环境变量中添加它的路径,或者在运行“adb devices”之前简单地运行以下命令:

set path=%PATH%;"D:\AndroidSDK\platform-tools"

注意 adb.exe 文件在我的 PC 上的 platform-tools 文件夹中,在 Android SDK 文件夹中。您需要修改此路径,因为它在您的 PC 上。

【讨论】:

  • 我都试过了。不工作你不知道吗
  • 在命令窗口中运行“adb devices”命令得到什么输出?
  • 在我的例子中,adb devices 输出显示设备名称,并且我在 PATH 下提供了平台工具。但是appium还是找不到设备
【解决方案2】:

尝试使用真实设备,因为模拟器非常慢,启动时间也需要更多时间。即使是真正的设备我也面临这种问题,

预期原因:

  1. Android 模拟器启动问题
  2. 亚行问题
  3. 系统配置

如果 adb 问题,您需要在您的 cmd 中运行以下命令:

adb kill-server
adb start-server

然后您尝试使用 Android 模拟器并确保您的系统有足够的内存,这些模拟器(如 VM)将占用您系统的 CPU 和内存。

【讨论】:

  • 我都试过了。不工作。你不知道吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 2017-11-02
  • 2016-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多