tianxiaogu / ape

Apache License 2.0
52 stars 19 forks source link

java.lang.NoSuchMethodError: No interface method setInputMethod(Landroid/os/IBinder;Ljava/lang/String;) #9

Open Ad-Astra-Abyssosque opened 1 month ago

Ad-Astra-Abyssosque commented 1 month ago

When testing Fing on Pixel 4 (Android 10 API 29), an exception occured:

java.lang.NoSuchMethodError: No interface method setInputMethod(Landroid/os/IBinder;Ljava/lang/String;)V in class Lcom/android/internal/view/IInputMethodManager; or its super classes (declaration of 'com.android.internal.view.IInputMethodManager' appears in /system/framework/framework.jar!classes2.dex)
    at com.android.commands.monkey.ape.AndroidDevice.checkAndSetInputMethod(AndroidDevice.java:198)
    at com.android.commands.monkey.ape.AndroidDevice.sendIMEIntent(AndroidDevice.java:397)
    at com.android.commands.monkey.ape.AndroidDevice.sendText(AndroidDevice.java:433)
    at com.android.commands.monkey.MonkeySourceApe.doInput(MonkeySourceApe.java:1243)
    at com.android.commands.monkey.MonkeySourceApe.generateEventsForActionInternal(MonkeySourceApe.java:851)
    at com.android.commands.monkey.MonkeySourceApe.generateEventsForAction(MonkeySourceApe.java:891)
    at com.android.commands.monkey.MonkeySourceApe.generateEvents(MonkeySourceApe.java:809)
    at com.android.commands.monkey.MonkeySourceApe.getNextEvent(MonkeySourceApe.java:1284)
    at com.android.commands.monkey.Monkey.runMonkeyCycles(Monkey.java:1377)
    at com.android.commands.monkey.Monkey.run(Monkey.java:770)
    at com.android.commands.monkey.Monkey.main(Monkey.java:612)
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:399)

It seems that this error is triggered when ape is trying to input something.

tianxiaogu commented 1 month ago

Thanks for reporting the issue. Ape makes use some of private APIs of Android. It may broke on some latest Android versions. You could disable sendIMEintent or simply ignore exceptions in the following code block.

https://github.com/tianxiaogu/ape/blob/master/src/com/android/commands/monkey/ape/AndroidDevice.java#L410C1-L418C6