uiautomator2 icon indicating copy to clipboard operation
uiautomator2 copied to clipboard

uiautomator2.exceptions.JsonRpcError: -32001 Jsonrpc error: <java.lang.StackOverflowError> data: java.lang.StackOverflowError: stack size 1037KB

Open yswtrue opened this issue 7 years ago • 11 comments

代码:

import time

import uiautomator2 as u2


def main():
    package_name = 'com.sina.weibo'
    d = u2.connect('192.168.8.102')  # 如果多个手机连接电脑,则需要填入对应的设备号

    with d.session(package_name) as sess:
        sess(resourceId="com.sina.weibo:id/rltitleSave").click()
        time.sleep(5)


if __name__ == '__main__':
    main()

Versions (版本)

Name: uiautomator2
Version: 0.1.11.dev1
Summary: Python Wrapper for Android UiAutomator2 test tool
Home-page: https://github.com/codeskyblue/uiautomator2
Author: codeskyblue
Author-email: [email protected]
License: MIT
Location: /home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages
Requires: retry, docopt, pure-python-adb, six, requests, logzero, humanize, fire, whichcraft, progress
Required-by: atx

Issue and steps to reproduce (复现步骤)

11行点击右上角那个加号的时候它就会提示这个错误了

  • 手机型号? vivo x23

  • 错误日志?

/home/yswtrue/.virtualenvs/automaton/bin/python /home/yswtrue/PycharmProjects/automaton/main.py
Traceback (most recent call last):
  File "/home/yswtrue/PycharmProjects/automaton/main.py", line 17, in <module>
    main()
  File "/home/yswtrue/PycharmProjects/automaton/main.py", line 11, in main
    sess(resourceId="com.sina.weibo:id/rltitleSave").click()
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/uiautomator2/session.py", line 39, in _inner
    return fn(self, *args, **kwargs)
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/uiautomator2/session.py", line 746, in click
    x, y = self.center(offset=offset)
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/uiautomator2/session.py", line 763, in center
    info = self.info
  File "<decorator-gen-6>", line 2, in info
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/retry/api.py", line 74, in retry_decorator
    logger)
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/retry/api.py", line 33, in __retry_internal
    return f()
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/uiautomator2/session.py", line 728, in info
    return self.jsonrpc.objInfo(self.selector)
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/uiautomator2/__init__.py", line 363, in __call__
    params, http_timeout)
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/uiautomator2/__init__.py", line 370, in jsonrpc_retry_call
    return self.jsonrpc_call(*args, **kwargs)
  File "/home/yswtrue/.virtualenvs/automaton/lib/python3.6/site-packages/uiautomator2/__init__.py", line 449, in jsonrpc_call
    raise err
uiautomator2.exceptions.JsonRpcError: -32001 Jsonrpc error: <java.lang.StackOverflowError> data: java.lang.StackOverflowError: stack size 1037KB
	at java.util.HashMap.getNode(HashMap.java:571)
	at java.util.HashMap.get(HashMap.java:556)
	at android.os.Parcel.readParcelableCreator(Parcel.java:2888)
	at android.os.Parcel.readParcelable(Parcel.java:2851)
	at android.view.DisplayInfo.readFromParcel(DisplayInfo.java:389)
	at android.view.DisplayInfo.<init>(DisplayInfo.java:270)
	at android.view.DisplayInfo.<init>(Unknown Source:0)
	at android.view.DisplayInfo$1.createFromParcel(DisplayInfo.java:253)
	at android.view.DisplayInfo$1.createFromParcel(DisplayInfo.java:251)
	at android.hardware.display.IDisplayManager$Stub$Proxy.getDisplayInfo(IDisplayManager.java:359)
	at android.hardware.display.DisplayManagerGlobal.getDisplayInfo(DisplayManagerGlobal.java:150)
	at android.hardware.display.DisplayManagerGlobal.getCompatibleDisplay(DisplayManagerGlobal.java:225)
	at android.app.ResourcesManager.getAdjustedDisplay(ResourcesManager.java:250)
	at android.app.ContextImpl.getDisplay(ContextImpl.java:2178)
	at android.view.WindowManagerImpl.getDefaultDisplay(WindowManagerImpl.java:149)
	at android.support.test.uiautomator.UiDevice.getDefaultDisplay(UiDevice.java:1090)
	at android.support.test.uiautomator.UiDevice.getDisplayWidth(UiDevice.java:524)
	at android.support.test.uiautomator.UiObject2.getVisibleBounds(UiObject2.java:233)
	at android.support.test.uiautomator.UiObject2.getVisibleBounds(UiObject2.java:253)
	at android.support.test.uiautomator.UiObject2.getVisibleBounds(UiObject2.java:253)
	at android.support.test.uiautomator.UiObject2.getVisibleBounds(UiObject2.java:213)
	at com.github.uiautomator.stub.ObjInfo.<init>(ObjInfo.java:67)
	at com.github.uiautomator.stub.ObjInfo.getObjInfo(ObjInfo.java:44)
	at com.github.uiautomator.stub.AutomatorServiceImpl.objInfo(AutomatorServiceImpl.java:773)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.googlecode.jsonrpc4j.JsonRpcBasicServer.invoke(JsonRpcBasicServer.java:467)
	at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleObject(JsonRpcBasicServer.java:352)
	at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleJsonNodeRequest(JsonRpcBasicServer.java:283)
	at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleRequest(JsonRpcBasicServer.java:251)
	at com.github.uiautomator.stub.AutomatorHttpServer.serve(AutomatorHttpServer.java:100)
	at fi.iki.elonen.NanoHTTPD.serve(NanoHTTPD.java:2244)
	at fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:945)
	at fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:192)
	at java.lang.Thread.run(Thread.java:764)
, method: objInfo

Process finished with exit code 1

  • 出错的代码片段?

Screenshots (相关截图)

能有尽量有

Additional Details (其他信息)

yswtrue avatar Jan 23 '19 12:01 yswtrue

首例哎

codeskyblue avatar Jan 24 '19 00:01 codeskyblue

是我的机器太低端了吗😂

yswtrue avatar Jan 24 '19 08:01 yswtrue

**我也遇到了这个问题, 利用uiautomator2遍历的时候.

11111

好像是因为函数: session.dump_hierarchy 22222

OnTheWay111 avatar Mar 14 '19 08:03 OnTheWay111

重试下,会不会恢复正常

codeskyblue avatar Mar 14 '19 10:03 codeskyblue

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Apr 30 '19 09:04 stale[bot]

这个bug能解决吗?目前在实际使用时,会经常出现。

taylortaurus avatar Jul 03 '20 06:07 taylortaurus

我只是fork了 问问作者吧

------------------ Original ------------------ From: taylortaurus <[email protected]> Date: Fri,Jul 3,2020 2:10 PM To: openatx/uiautomator2 <[email protected]> Cc: OnTheWay111 <[email protected]>, Comment <[email protected]> Subject: Re: [openatx/uiautomator2] uiautomator2.exceptions.JsonRpcError: -32001 Jsonrpc error: <java.lang.StackOverflowError> data: java.lang.StackOverflowError: stack size 1037KB (#297)

这个bug能解决吗?目前在实际使用时,会经常出现。

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

OnTheWay111 avatar Jul 03 '20 07:07 OnTheWay111

我也遇到了同样问题,手机是RedMi Android11,请问如何解决呢?

Starting test: Robotframework-Androidapp.TestCase.IPGW CF UnexpectedCall.Monitor_If_Call 20210813 17:21:22.336 : WARN : ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')), retrying in 0.5 seconds... 20210813 17:21:26.056 : INFO : {'currentPackageName': 'com.android.settings', 'displayHeight': 2220, 'displayRotation': 0, 'displaySizeDpX': 393, 'displaySizeDpY': 851, 'displayWidth': 1080, 'productName': 'begonia', 'screenOn': True, 'sdkInt': 30, 'naturalOrientation': True} 20210813 17:21:26.057 : INFO : [32m[I 210813 17:21:22 init:155][39m uiautomator2 version: 2.12.0 20210813 17:21:29.059 : INFO : Slept 3 seconds 20210813 17:21:29.060 : WARN : open abb welcome app 20210813 17:21:32.116 : INFO : Slept 3 seconds 20210813 17:21:32.684 : WARN : Wait EULA 20210813 17:21:45.031 : FAIL : JSONRPCError: -32001 Jsonrpc error: <java.lang.StackOverflowError> data: java.lang.StackOverflowError: stack size 1043KB at java.lang.ref.PhantomReference.(PhantomReference.java:80) at sun.misc.Cleaner.(Cleaner.java:115) at sun.misc.Cleaner.create(Cleaner.java:133) at libcore.util.NativeAllocationRegistry.registerNativeAllocation(NativeAllocationRegistry.java:245) at com.android.icu.util.regex.MatcherNative.(MatcherNative.java:38) at com.android.icu.util.regex.MatcherNative.create(MatcherNative.java:32) at java.util.regex.Matcher.usePattern(Matcher.java:214) at android.support.test.uiautomator.ByMatcher.findMatches(ByMatcher.java:172) at android.support.test.uiautomator.ByMatcher.findMatches(ByMatcher.java:172) at android.support.test.uiautomator.Until$2.apply(Until.java:55) at android.support.test.uiautomator.Until$2.apply(Until.java:52) at android.support.test.uiautomator.WaitMixin.wait(WaitMixin.java:49) at android.support.test.uiautomator.WaitMixin.wait(WaitMixin.java:34) at android.support.test.uiautomator.UiDevice.wait(UiDevice.java:174) at com.github.uiautomator.stub.AutomatorServiceImpl.waitForExists(AutomatorServiceImpl.java:1055) at java.lang.reflect.Method.invoke(Native Method) at com.googlecode.jsonrpc4j.JsonRpcBasicServer.invoke(JsonRpcBasicServer.java:467) at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleObject(JsonRpcBasicServer.java:352) at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleJsonNodeRequest(JsonRpcBasicServer.java:283) at com.googlecode.jsonrpc4j.JsonRpcBasicServer.handleRequest(JsonRpcBasicServer.java:251) at com.github.uiautomator.stub.AutomatorHttpServer.serve(AutomatorHttpServer.java:100) at fi.iki.elonen.NanoHTTPD.serve(NanoHTTPD.java:2244) at fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:945) at fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:192) at java.lang.Thread.run(Thread.java:923) , method: waitForExists Ending test: Robotframework-Androidapp.TestCase.IPGW CF UnexpectedCall.Monitor_If_Call

winniewang0813 avatar Aug 13 '21 09:08 winniewang0813

我也遇到了这个问题,是在检查页面元素的时候遇到,具体是哪个元素关系不大。我这边在“新浪微博”的页面时常遇到,不知道是不是有时候微博页面元素太多,导致stackOverFlowError?请uiautomator2帮忙看一下。 for i in range (0,3): if d(text="以后再说").exists(): d(text="以后再说").click_exists() else: time.sleep(2)

yazhli avatar Jan 07 '22 03:01 yazhli

打开Atx-agent 查看UIAUTOMATOR状态是否为STOP,是的话手动启动再运行脚本(从csdn看到的,确实好用)

YangRyker avatar Apr 11 '23 07:04 YangRyker

@yazhli 我也是在微博上有这个问题,有解决方法吗

Ffmydy avatar Mar 13 '24 07:03 Ffmydy