{"action":"closed","issue":{"url":"https://api.github.com/repos/frida/frida/issues/288","repository_url":"https://api.github.com/repos/frida/frida","labels_url":"https://api.github.com/repos/frida/frida/issues/288/labels{/name}","comments_url":"https://api.github.com/repos/frida/frida/issues/288/comments","events_url":"https://api.github.com/repos/frida/frida/issues/288/events","html_url":"https://github.com/frida/frida/issues/288","id":237881568,"node_id":"MDU6SXNzdWUyMzc4ODE1Njg=","number":288,"title":"Java.perform not working on Android when used with frida -l","user":{"login":"benj56","id":23738705,"node_id":"MDQ6VXNlcjIzNzM4NzA1","avatar_url":"https://avatars1.githubusercontent.com/u/23738705?v=4","gravatar_id":"","url":"https://api.github.com/users/benj56","html_url":"https://github.com/benj56","followers_url":"https://api.github.com/users/benj56/followers","following_url":"https://api.github.com/users/benj56/following{/other_user}","gists_url":"https://api.github.com/users/benj56/gists{/gist_id}","starred_url":"https://api.github.com/users/benj56/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benj56/subscriptions","organizations_url":"https://api.github.com/users/benj56/orgs","repos_url":"https://api.github.com/users/benj56/repos","events_url":"https://api.github.com/users/benj56/events{/privacy}","received_events_url":"https://api.github.com/users/benj56/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-06-22T15:18:57Z","updated_at":"2018-07-03T16:21:57Z","closed_at":"2018-07-03T16:21:57Z","author_association":"NONE","body":"Specifically, the following script will never output `Entered perform` unless I reload (edit and save) the file:\r\n\r\n```\r\nconsole.log(\"Waiting for Java..\");\r\n\r\nwhile(!Java.available) {\r\n\tconsole.log(\"Java not available yet\");\r\n}\r\n\r\nconsole.log(\"Java available..\");\r\n\r\nJava.perform(function () {\t\r\n\tconsole.log(\"Entered perform..\"); \r\n\r\n\tvar activity = Java.use(\"android.app.Activity\");\r\n\tvar webView = Java.use(\"android.webkit.WebView\");\r\n       (...)});\r\n\r\nconsole.log(\"Called perform.\");\r\n```\r\n\r\nThe output is\r\n```\r\nWaiting for Java..\r\nJava available.\r\nCalled perform.\r\n```\r\n\r\nPerform does not execute until I reload the script at runtime, which works, but is too late for me. \r\nAm I doing something wrong?\r\n\r\nI'm very sorry to abuse this issue to ask this, but I am trying to find out which of my dependencies in the Android app introduced a WebView to my application, since said WebView (managed to trace it's loadUrl calls) is invisible (never thought I'd have one) but apparently causes a native crash on some devices. Now my question is what the best way to get a stacktrace of where a specific java method/constructor of the WebView is called would be. \r\n\r\nThanks a lot for helping me and working on this great tool.\r\n\r\n"}}
{"actor":{"display_login":"oleavr"}}