Adb Key Monkey - Tool for control android device via PC keyboard

This tool works like you connect a physical keyboard to your android device directly but with some limitations. For more information, you can go directly to github.com. Here I will share all the steps I have done to make this tool work well with my own android device.


My PC
. OS: Debian GNU/Linux 9.3 (stretch) x86_64
. Kernel: 4.9.0-5-amd64

My Smartphone
. Xiaomi Redmi 3 Pro
. OS: Android 5.1 (Lollipop)

Download
. AdbKeyMonkey-1.0.4.jar

The steps
. enable USB debugging on smartphone.
. plug the usb data cable into pc-smartphone.
. it will not connect to tool, if usb debugging result like following:
$ adb devices
List of devices attached
e247ec6f7d03 no permissions (verify udev rules); see [http://developer.android.com/tools/device.html]
. in order to connect properly should be as follows:
$ adb devices
List of devices attached
e247ec6f7d03 device
. first try running this app, it is not running and an error appears:
$ java -jar AdbKeyMonkey-1.0.4.jar
Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
 at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
 at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:220)
 at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:173)
 at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:206)
 at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:649)
 at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:312)
 at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:303)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
 at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
 at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
 at java.lang.Thread.run(Thread.java:748)
Exception in thread "main" java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: No toolkit found
 at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:185)
 at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:206)
 at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:649)
 at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:312)
 at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:303)
 ... 5 more
. after reading the JavaFX on Linux is showing a “Graphics Device initialization failed for : es2, sw” , there is the possibility of error appear because there is a package that has not been installed, then try to install the following but still not solved:
$ sudo apt install  libswt-gtk-3-java

$ sudo apt install libgtk2.0-bin libxtst6 libxslt1.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libgtk2.0-bin is already the newest version (2.24.31-2).
libgtk2.0-bin set to manually installed.
libxslt1.1 is already the newest version (1.1.29-2.1).
libxslt1.1 set to manually installed.
libxtst6 is already the newest version (2:1.2.3-1).
libxtst6 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

$ sudo apt-get install libgtk2.0-0:i386 libxtst6:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libgtk2.0-0:i386 is already the newest version (2.24.31-2).
libxtst6:i386 is already the newest version (2:1.2.3-1).
libxtst6:i386 set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
. the error was fixed after installation:
$ sudo apt install openjfx
. it might happen because i use openjdk (not jdk from oracle)
$ java -version                   
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-1~deb9u1-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Thank you for reading, your feedback is awaited.
Adb Key Monkey - Tool for control android device via PC keyboard Adb Key Monkey - Tool for control android device via PC keyboard Reviewed by Opoel34 on 2/13/2018 07:14:00 AM Rating: 5

No comments: