Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't switch context to webview " A new session could not be created" #16010

Closed
lucaswxp opened this issue Oct 25, 2021 · 29 comments
Closed

Can't switch context to webview " A new session could not be created" #16010

lucaswxp opened this issue Oct 25, 2021 · 29 comments
Labels
Android related to Android-native driver(s) Needs Info typically non-actionable; needs author to respond

Comments

@lucaswxp
Copy link

The problem

Trying to automate "Kiwi Browser" on real device, but once the app is open, can't switch to web view context.

Environment

  • Appium version (or git revision) that exhibits the issue: 1.21.0
  • Desktop OS/version used to run Appium: Ubuntu 20.04.2 LTS
  • Node.js version (unless using Appium.app|exe): v13.14.0
  • Mobile platform/version under test: Android 11
  • Real device or emulator/simulator: Real device

Details

Appium is unable to start a new session on the webview context, this what the appium server says:

session not created: please close 'com.kiwibrowser.browser' and try again","stacktrace":"#0 0x559744c178f3 <unknown>\n#1 0x5597446fcba8 <unknown>\n#2 0x559744723400 <unknown>\n#3 0x55974471c1c7 <unknown>\n#4 0x559744755995 <unknown>\n#5 0x55974474fd63 <unknown>\n#6 0x559744726144 <unknown>\n#7 0x559744727135 <unknown>\n#8 0x559744c46c3e <unknown>\n#9 0x559744c5c6b7 <unknown>\n#10 0x559744c47b95 <unknown>\n#11 0x559744c5db05 <unknown>\n#12 0x559744c3c2ab <unknown>\n#13 0x559744c78248 <unknown>\n#14 0x559744c783c8 <unknown>\n#15 0x559744c9333d <unknown>\n#16 0x7f8b31fd6609 start_thread

Link to Appium logs

https://pastebin.com/rKsD6GyE

@jlipps
Copy link
Member

jlipps commented Oct 25, 2021

  1. please include the full appium logs
  2. does the Kiwi browser use Chromium webviews? If not, Chromedriver will not be able to automate it

@lucaswxp
Copy link
Author

  1. I tried to keep it lean before with the logs because there was some garbage, here is the full logs: https://pastebin.com/H3rDCJ7F
  2. Yes, Kiwi does use Chromium underneath.

@lucaswxp
Copy link
Author

For some reason, pastebin deleted my previous paste, here it is: https://gist.github.com/lucaswxp/2316c8bede02cb575184958b80ce5362

@KazuCocoa
Copy link
Member

The error message itself was by chromebrowser.

[Chromedriver] Starting W3C Chromedriver session with capabilities: {
[Chromedriver]   "capabilities": {
[Chromedriver]     "alwaysMatch": {
[Chromedriver]       "goog:chromeOptions": {
[Chromedriver]         "androidPackage": "com.android.chrome",
[Chromedriver]         "androidUseRunningApp": true,
[Chromedriver]         "androidDeviceSerial": "9316e84c",
[Chromedriver]         "androidProcess": "chrome"
[Chromedriver]       },
[Chromedriver]       "goog:loggingPrefs": {
[Chromedriver]         "browser": "ALL"
[Chromedriver]       }
[Chromedriver]     }
[Chromedriver]   }
[Chromedriver] }
[debug] [WD Proxy] Matched '/session' to command name 'createSession'
[debug] [WD Proxy] Proxying [POST /session] to [POST http://127.0.0.1:8000/wd/hub/session] with body: {"capabilities":{"alwaysMatch":{"goog:chromeOptions":{"androidPackage":"com.android.chrome","androidUseRunningApp":true,"androidDeviceSerial":"9316e84c","androidProcess":"chrome"},"goog:loggingPrefs":{"browser":"ALL"}}}}
[debug] [Chromedriver] Webview version: 'Chrome/94.0.4606.56'
[WD Proxy] Got response with status 500: {"value":{"error":"session not created","message":"session not created: please close 'com.kiwibrowser.browser' and try again","stacktrace":"#0 0x5596038b88f3 <unknown>\n#1 0x55960339dba8 <unknown>\n#2 0x5596033c4400 <unknown>\n#3 0x5596033bd1c7 <unknown>\n#4 0x5596033f6995 <unknown>\n#5 0x5596033f0d63 <unknown>\n#6 0x5596033c7144 <unknown>\n#7 0x5596033c8135 <unknown>\n#8 0x5596038e7c3e <unknown>\n#9 0x5596038fd6b7 <unknown>\n#10 0x5596038e8b95 <unknown>\n#11 0x5596038feb05 <unknown>\n#12 0x5596038dd2ab <unknown>\n#13 0x559603919248 <unknown>\n#14 0x5596039193c8 <unknown>\n#15 0x55960393433d <unknown>\n#16 0x7f6976e06609 start_thread\n"}}
[debug] [W3C] Matched W3C error code 'session not created' to SessionNotCreatedError
[debug] [Chromedriver] SessionNotCreatedError: A new session could not be created. Details: session not created: please close 'com.kiwibrowser.browser' and try again
[debug] [Chromedriver]     at errorFromW3CJsonCode (/home/lucaswxp/.nvm/versions/node/v13.14.0/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:780:25)
[debug] [Chromedriver]     at ProxyRequestError.getActualError (/home/lucaswxp/.nvm/versions/node/v13.14.0/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:663:14)
[debug] [Chromedriver]     at JWProxy.command (/home/lucaswxp/.nvm/versions/node/v13.14.0/lib/node_modules/appium/node_modules/appium-base-driver/lib/jsonwp-proxy/proxy.js:272:19)
[debug] [Chromedriver]     at processTicksAndRejections (internal/process/task_queues.js:97:5)
[Chromedriver] Chromedriver exited unexpectedly with code null, signal SIGTERM
[debug] [Chromedriver] Changed state to 'stopped'

Did you see relevant logs in the locgat?

@KazuCocoa KazuCocoa added the Needs Info typically non-actionable; needs author to respond label Oct 26, 2021
@lucaswxp
Copy link
Author

Hey @KazuCocoa All I'm doing is calling setContext:

Calling AppiumDriver.setContext() with args: ["WEBVIEW_chrome","e9804d28-ee79-4e1c-b3b2-2323d65b443b"]
...
Connecting to chrome-backed webview context 'WEBVIEW_chrome'
...
[debug] [AndroidDriver] Precalculated Chromedriver capabilities: {
[debug] [AndroidDriver]   "androidPackage": "com.android.chrome",
[debug] [AndroidDriver]   "androidUseRunningApp": true,
[debug] [AndroidDriver]   "androidDeviceSerial": "9316e84c",
[debug] [AndroidDriver]   "androidProcess": "chrome"
[debug] [AndroidDriver] }
[debug] [AndroidDriver] Before starting chromedriver, androidPackage is 'com.android.chrome'

Should I somehow instruct AppiumDriver.setContext() about the correct androidPackage? I might be wrong, but I dont think I have control about this "Precalculated Chromedriver capabilities" since it's in a webview.

This is more or less how I start the Kiwi Browser on the client side:

webdriverio.remote({
            port: 4723,
            path: '/wd/hub/',
            capabilities: {
                newCommandTimeout: 60 * 50, // 50m timeout for new commands
                automationName: 'UiAutomator2',
                resetKeyboard: true,
                "appPackage": "com.kiwibrowser.browser",
                "appActivity": "com.google.android.apps.chrome.Main",
                ....
            }
        })

Then I try to switch context:

driver.switchContext('WEBVIEW_chrome')

@KazuCocoa
Copy link
Member

appium:chromeOptions allows you to customize the chromOptions. https://github.com/appium/appium-uiautomator2-driver
Appium predicts possible configuration of the app under test. The case is when the webview is chromium custom tab.
I don't know the kiwi browser well, but if the browser customized its browser package name etc and it was not vanilla chrome custom tab, its worth to try our com.kiwibrowser.browser instead of com.android.chrome
Then, you can specify the androidPackage as the kiwi in the chromeOptions.

@mykola-mokhnach mykola-mokhnach added Android related to Android-native driver(s) NotABug labels Oct 26, 2021
@lucaswxp
Copy link
Author

Hello, I inserted the appium:chromeOptions as follows:

webdriverio.remote({
            port: 4723,
            path: '/wd/hub/',
            capabilities: {
                "appium:newCommandTimeout": 60 * 50, // 50m timeout for new commands
                "appium:automationName": 'UiAutomator2',
                "appium:resetKeyboard": true,
                "appium:appPackage": "com.kiwibrowser.browser",
                "appium:appActivity": "com.google.android.apps.chrome.Main",
                "appium:chromeOptions": {
                    "androidPackage": "com.kiwibrowser.browser",
                }
                ....
            }
        })

This had no effect, I still get:

[debug] [AndroidDriver] Connecting to chrome-backed webview context 'WEBVIEW_chrome'
[debug] [AndroidDriver] A port was not given, using random free port: 8000
[debug] [AndroidDriver] Passing web view details to the Chromedriver constructor: {
[debug] [AndroidDriver]   "process": {
[debug] [AndroidDriver]     "name": "chrome",
[debug] [AndroidDriver]     "id": null
[debug] [AndroidDriver]   }
[debug] [AndroidDriver] }
[debug] [AndroidDriver] Automated Chromedriver download is disabled. Use 'chromedriver_autodownload' server feature to enable it
[debug] [AndroidDriver] Precalculated Chromedriver capabilities: {
[debug] [AndroidDriver]   "androidPackage": "com.android.chrome",
[debug] [AndroidDriver]   "androidUseRunningApp": true,
[debug] [AndroidDriver]   "androidDeviceSerial": "9316e84c",
[debug] [AndroidDriver]   "androidProcess": "chrome"
[debug] [AndroidDriver] }
[debug] [AndroidDriver] Before starting chromedriver, androidPackage is 'com.android.chrome'

@mykola-mokhnach
Copy link
Collaborator

mykola-mokhnach commented Oct 26, 2021

Are you able to debug that web view using the native Chrome remote debugger?

@mykola-mokhnach
Copy link
Collaborator

Also please make sure you use the most recent server version

@lucaswxp
Copy link
Author

@mykola-mokhnach How can I debug the web view using the native Chrome remote debugger?

I have some more verbose logging after enabled appium:enableWebviewDetailsCollection:

[debug] [AndroidDriver] CDP data collection completed
[debug] [AndroidDriver] Found 1 webview: ["WEBVIEW_chrome"]
[debug] [AndroidDriver] Available contexts: ["NATIVE_APP","WEBVIEW_chrome"]
[debug] [AndroidDriver] Connecting to chrome-backed webview context 'WEBVIEW_chrome'
[debug] [AndroidDriver] A port was not given, using random free port: 8000
[debug] [AndroidDriver] Passing web view details to the Chromedriver constructor: {
[debug] [AndroidDriver]   "info": {
[debug] [AndroidDriver]     "Android-Package": "com.kiwibrowser.browser",
[debug] [AndroidDriver]     "Browser": "Chrome/94.0.4606.56",
[debug] [AndroidDriver]     "Protocol-Version": "1.3",
[debug] [AndroidDriver]     "User-Agent": "Mozilla/5.0 (Linux; Android 11; M2101K9AG) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.56 Mobile Safari/537.36",
[debug] [AndroidDriver]     "V8-Version": "9.4.146.16",
[debug] [AndroidDriver]     "WebKit-Version": "537.36 (@d8ef9bd7c2fb3e21de309b53347a425d73f1a5ce)",
[debug] [AndroidDriver]     "webSocketDebuggerUrl": "ws://127.0.0.1:10900/devtools/browser"
[debug] [AndroidDriver]   },
[debug] [AndroidDriver]   "process": {
[debug] [AndroidDriver]     "name": "chrome",
[debug] [AndroidDriver]     "id": null
[debug] [AndroidDriver]   }
[debug] [AndroidDriver] }
[debug] [AndroidDriver] Automated Chromedriver download is disabled. Use 'chromedriver_autodownload' server feature to enable it
[debug] [AndroidDriver] Precalculated Chromedriver capabilities: {
[debug] [AndroidDriver]   "androidPackage": "com.android.chrome",
[debug] [AndroidDriver]   "androidUseRunningApp": true,
[debug] [AndroidDriver]   "androidDeviceSerial": "9316e84c",
[debug] [AndroidDriver]   "androidProcess": "chrome"
[debug] [AndroidDriver] }
[AndroidDriver] The following Chromedriver capabilities cannot be overridden by the provided chromeOptions:
[AndroidDriver]   androidPackage ("com.kiwibrowser.browser")
[debug] [AndroidDriver] Before starting chromedriver, androidPackage is 'com.android.chrome'
[debug] [Chromedriver] Changed state to 'starting'
[debug] [Chromedriver] Using the static Chromedriver->Chrome mapping
[debug] [Chromedriver] The most recent known Chrome version: 89.0.4389

@mykola-mokhnach
Copy link
Collaborator

This looks better. I'll try to do some changes based on this info, which might help to resolve this issue.

@KazuCocoa
Copy link
Member

For #16010 (comment)

I thought https://github.com/appium/appium-android-driver/blob/4ec9994570bdf163b47b7318002a2d0b3687f128/lib/webview-helpers.js#L481-L484 set

                "appium:chromeOptions": {
                    "androidPackage": "com.kiwibrowser.browser",
                }

but I guess opts.chromeAndroidPackage overridden it.

@mykola-mokhnach
Copy link
Collaborator

Please attach the log from the most recent server version. I assume this functionality should work there

@lucaswxp
Copy link
Author

https://gist.github.com/lucaswxp/0affcf867b11faada4fe2c5cb757271b

On latest appium. The error message changed.

[debug] [Chromedriver] Found Chrome bundle 'undefined' version '94.0.4606'
...
[WD Proxy] Got response with status 500: {"value":{"error":"unknown error","message":"unknown error: Failed to get sockets matching: @weblayer_devtools_remote_.*8595\n  (make sure the app has its WebView/WebLayer configured for debugging)","stacktrace":"#0 0x5580118e18f3 <unknown>\n#1 0x5580113c6ba8 <unknown>\n#2 0x5580113a2d96 <unknown>\n#3 0x5580113ae592 <unknown>\n#4 0x5580113ad9bf <unknown>\n#5 0x5580113e5ed0 <unknown>\n#6 0x55801141f995 <unknown>\n#7 0x558011419d63 <unknown>\n#8 0x5580113f0144 <unknown>\n#9 0x5580113f1135 <unknown>\n#10 0x558011910c3e <unknown>\n#11 0x5580119266b7 <unknown>\n#12 0x558011911b95 <unknown>\n#13 0x558011927b05 <unknown>\n#14 0x5580119062ab <unknown>\n#15 0x558011942248 <unknown>\n#16 0x5580119423c8 <unknown>\n#17 0x55801195d33d <unknown>\n#18 0x7f0f246fb609 start_thread\n"}}

How can I configure the app for debugging?

@lucaswxp
Copy link
Author

I don't know if it's relevant, but kiwi has a section about remote debugging: https://github.com/kiwibrowser/src/#remote-debugging

And this is the screen chrome://inspect in my device:
image

@jlipps
Copy link
Member

jlipps commented Oct 26, 2021

You don't want to try to inspect from the device, rather you want to try and inspect the device from your desktop browser to see if it's accessible from the outside.

@mykola-mokhnach
Copy link
Collaborator

The recent error most likely means that chromedriver won't be able to debug the webview and I don't think there's more we could do about it in Appium.
Please let us know if you were able to find a solution.

@lucaswxp
Copy link
Author

I'm able to inspect it with Chrome DevTools now:

image

Are you guys sure the problem is with Kiwi itself? Shouldn't appium also be able to inspect it?

I tested this with 2 real devices, both exhibit the same problem.

@jlipps
Copy link
Member

jlipps commented Oct 28, 2021

The next step would be to try to automate it with Chromedriver directly, no Appium involved. If that is possible, then it can definitely work with Appium and it's just a matter of getting things hooked up correctly. If that's not possible, then it's also likely not possible with Appium (since Appium uses Chromedriver).

Typically, if you can inspect via Chrome it's possible for Chromedriver to work, but as this is a new browser I've never heard of, I'm not sure.

@KazuCocoa
Copy link
Member

Logs with appium:enableWebviewDetailsCollection also helps us to guess the cause

@lucaswxp
Copy link
Author

I have made a simple shell script that will reproduce the issue:

#!/bin/bash
url="http://127.0.0.1:4723/wd/hub"

capabilities='{"capabilities":{"alwaysMatch":{"appium:newCommandTimeout":3000,"appium:automationName":"UiAutomator2","appium:resetKeyboard":true,"appium:enableWebviewDetailsCollection":true,"appium:appPackage":"com.kiwibrowser.browser","appium:appActivity":"com.google.android.apps.chrome.Main","platformName":"Android","appium:noReset":true,"appium:fullReset":false,"appium:autoLaunch":true},"firstMatch":[{}]},"desiredCapabilities":{"appium:newCommandTimeout":3000,"appium:automationName":"UiAutomator2","appium:resetKeyboard":true,"appium:appPackage":"com.kiwibrowser.browser","appium:appActivity":"com.google.android.apps.chrome.Main","platformName":"Android","appium:enableWebviewDetailsCollection":true,"appium:noReset":true,"appium:fullReset":false,"appium:autoLaunch":true}}'

headers='Content-Type: application/json'

echo "Getting a session..."
resp=$(curl -s -XPOST  -H "${headers}" "${url}/session" -d "${capabilities}")
sessionId=$(echo $resp | jq -r ".value.sessionId")

if [[ -z $sessionId ]]; then
    echo "Could not capture session ID"
else
    echo "Got a session: ${sessionId}"
    
    # wait for chrome context
    while true; do
        contexts=$(curl -s -H "${headers}" "$url/session/${sessionId}/contexts")
        echo "contexts found: $contexts"
        if echo "$contexts" | grep -q "WEBVIEW"; then
            break
        else
            echo "Please, open a website to trigger webview"
        fi
        sleep 1
    done
    
    
    resp=$(curl -s -H "${headers}" -d '{"name":"WEBVIEW_chrome"}' "$url/session/${sessionId}/context")
    echo "Set context response:"
    echo $resp
fi

This is the Kiwi APK: https://drive.google.com/file/d/1pyBW6ZeQpS8rTHpeodtSxbJMPr8bwGYr/view?usp=sharing

adb install ./com.kiwibrowser.browser_94.0.4606.56-460605610_minAPI21\(armeabi-v7a\)\(nodpi\)_apkmirror.com.apk

@KazuCocoa Here is the full logs with appium:enableWebviewDetailsCollection enabled https://gist.github.com/lucaswxp/1a9756a649311e6f0b43848deb498944

@lucaswxp
Copy link
Author

@jlipps Do you have any resources on how to use chromedriver directly? Can I do this exclusively in the command line? In the official website there isn't much info.

@lucaswxp
Copy link
Author

I'm gonna explain my use case, just in case you guys can share some insight... The only reason I need Kiwi is because the browser supports extensions/plugins, while Chrome doesn't.

Extensions are just a list of extension files encoded as base64 and added to the chrome options inside the capabilities struct, could I somehow enable extensions on the mobile chrome app that way?

@jlipps
Copy link
Member

jlipps commented Oct 28, 2021

Extensions are just a list of extension files encoded as base64 and added to the chrome options inside the capabilities struct

Where did you learn this? Are you saying that Chromedriver automation of the Kiwi browser and extensions is definitely supported?

But yeah you can run Chromedriver just like you run Appium. You'll need to construct different sets of capabilities but it's all the same protocol.

@lucaswxp
Copy link
Author

lucaswxp commented Oct 28, 2021

@jlipps Not exactly what I meant.

I meant that one can set {"goog:chromeOptions":{"extensions":["base64-of-crx-file"]}} and that will work on chrome for desktop, I was wondering if it could work on Chrome under Android too - because extensions are disabled by Chrome, I'm thinking it will be ignored probably.

You'll need to construct different sets of capabilities but it's all the same protocol.

I'm trying to run chromedriver directly like you suggested, so I'm trying to see if I can inspect actual Chrome on my device before I try Kiwi, but chromedriver can't see to find the remote target, even tho appium can. This is the capability I'm using: {"capabilities":{"alwaysMatch":{"platformName":"Android"}} I get session not created: No matching capabilities found.

Should I be instructing chromedriver differently so it can locate my webview under Chrome? I tried looking into the webdriver protocol, there is nothing there.

@KazuCocoa
Copy link
Member

thanks the log,

/home/lucaswxp/.nvm/versions/node/v13.14.0/lib/node_modules/appium/node_modules/appium-chromedriver/chromedriver/linux/chromedriver_linux64_v94.0.4606.61 --url-base=wd/hub --port=8000 --adb-port=5037 --verbose

is what appium starts the chromedriver.

[Chromedriver] Starting W3C Chromedriver session with capabilities: {
[Chromedriver]   "capabilities": {
[Chromedriver]     "alwaysMatch": {
[Chromedriver]       "goog:chromeOptions": {
[Chromedriver]         "androidPackage": "com.kiwibrowser.browser",
[Chromedriver]         "androidUseRunningApp": true,
[Chromedriver]         "androidDeviceSerial": "5210759c5fcd35d7"
[Chromedriver]       },
[Chromedriver]       "goog:loggingPrefs": {
[Chromedriver]         "browser": "ALL"
[Chromedriver]       }
[Chromedriver]     }
[Chromedriver]   }
[Chromedriver] }

is what appium sends.
It looks like Kiwi browser does not support chromedriver automation..


Some arguments works on both desktop and mobile chrome, but some are not. (We usually need to take a look at chromedriver's code or check the behavior)
Potentially what you want does not work on mobile chrome.. (I haven't tried though)

@KazuCocoa
Copy link
Member

KazuCocoa commented Oct 28, 2021

https://gist.github.com/KazuCocoa/4009aed4e22507439f0f1441484ff2aa
I downloaded the kiwi browser on my android device via play store.
The capabilities were:

{
  "platformName": "android",
  "appium:automationName": "uiautomator2",
  "appium:appPackage": "com.kiwibrowser.browser",
  "appium:enableWebviewDetailsCollection": true,
  "appium:appActivity": "com.google.android.apps.chrome.Main"
}

Then, I got

[WD Proxy] Got response with status 500: {"value":{"error":"unknown error","message":"unknown error: Failed to get sockets matching: @weblayer_devtools_remote_.*6414\n (make sure the app has its WebView/WebLayer configured for debugging)","stacktrace":"0 chromedriver_mac64_v94.0.4606.61 0x00000001099815e9 chromedriver_mac64_v94.0.4606.61 + 2749929\n1 chromedriver_mac64_v94.0.4606.61 0x000000010a0385c3 chromedriver_mac64_v94.0.4606.61 + 9790915\n2 chromedriver_mac64_v94.0.4606.61 0x000000010970c828 chromedriver_mac64_v94.0.4606.61 + 174120\n3 chromedriver_mac64_v94.0.4606.61 0x00000001096ea166 chromedriver_mac64_v94.0.4606.61 + 33126\n4 chromedriver_mac64_v94.0.4606.61 0x00000001096f4cc4 chromedriver_mac64_v94.0.4606.61 + 76996\n5 chromedriver_mac64_v94.0.4606.61 0x00000001096f414d chromedriver_mac64_v94.0.4606.61 + 74061\n6 chromedriver_mac64_v94.0.4606.61 0x000000010972b6e4 chromedriver_mac64_v94.0.4606.61 + 300772\n7 chromedriver_mac64_v94.0.4606.61 0x0000000109764233 chromedriver_mac64_v94.0.4606.61 + 5...

This is expected since the browser was not debuggable.
I just used a USB debuggable Android device. The view was inspectable via chrome://inspect.

I guess currently the browser is able to automate via DevTools Protocol. (but then it is not able to interact with native area)

I haven't downloaded https://drive.google.com/file/d/1pyBW6ZeQpS8rTHpeodtSxbJMPr8bwGYr/view?usp=sharing , but if it was debuggable, and then also returned your attached error, I guess the browser does not support chromedriver interaction.

@lucaswxp
Copy link
Author

lucaswxp commented Oct 28, 2021 via email

@jlipps
Copy link
Member

jlipps commented Oct 28, 2021

Yeah, sorry. Looks like there are only two possible ways forward:

  1. Use the devtools protocol instead of webdriver
  2. Contact the Kiwi browser and ask them to make things compatible with Chromedriver or to release their own webdriver implementation, which would then be easy enough to incorporate into Appium as we have done with Chromedriver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android related to Android-native driver(s) Needs Info typically non-actionable; needs author to respond
Projects
None yet
Development

No branches or pull requests

4 participants