vsloong / GameHelper

游戏、应用辅助App。目前支持1、微信《跳一跳》,可实现“手动”以及“自动”寻找位置跳跃;2、旅行青蛙,支持修改三叶草数量以及奖券数量;3、淘宝直播刷赞,刷评论。如有问题请随时反馈!
125 stars 31 forks source link

米6无效 #9

Open liompei opened 6 years ago

liompei commented 6 years ago

已root,已给悬浮窗权限

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:714)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:347)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
    at com.cooloongwu.jumphelper.FloatView.attach(FloatView.java:204)
    at com.cooloongwu.jumphelper.MainActivity.onClick(MainActivity.java:66)
    at android.view.View.performClick(View.java:5647)
    at android.view.View$PerformClick.run(View.java:22462)
    at android.os.Handler.handleCallback(Handler.java:754)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:163)
    at android.app.ActivityThread.main(ActivityThread.java:6381)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:791)
    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
vsloong commented 6 years ago

我昨天的代码忘忘记删掉了,开启悬浮窗后立刻就把Activity finish掉了,所以这里有问题,待会儿修复就会放出新版。

vsloong commented 6 years ago

0.1.3已出,应该是修复了这个问题

liompei commented 6 years ago

点击事件中调用 floatView.attach();这个方法出错

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
    at android.view.ViewRootImpl.setView(ViewRootImpl.java:714)
    at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:347)
    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:94)
    at com.cooloongwu.jumphelper.view.FloatView.attach(FloatView.java:198)
    at com.cooloongwu.jumphelper.MainActivity.onClick(MainActivity.java:71)
    at android.view.View.performClick(View.java:5647)
    at android.view.View$PerformClick.run(View.java:22462)
    at android.os.Handler.handleCallback(Handler.java:754)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:163)
    at android.app.ActivityThread.main(ActivityThread.java:6381)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:791)
    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

emm.....还是不可以

vsloong commented 6 years ago

你有下代码吗?如果下了的话可以改一下FloatView.java中的 params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; 判断版本的就不要了,直接替换为这个看可不可行;

liompei commented 6 years ago

改了,可以了,我手机是7.1,你这里判断是4.4以上用了TYPE_TOAST,,,这样就报错了.. 不过用params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;是可以的 但奇怪的是我手机root了却不能自动跳,可以测出距离和时间

01-04 15:12:38.798 15300-15300/? W/System.err:     at java.lang.ProcessBuilder$NullOutputStream.write(ProcessBuilder.java:368)
01-04 15:12:38.798 15300-15300/? W/System.err:     at java.io.OutputStream.write(OutputStream.java:116)
01-04 15:12:38.798 15300-15300/? W/System.err:     at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
01-04 15:12:38.798 15300-15300/? W/System.err:     at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
01-04 15:12:38.800 15300-15300/? E/OutputStream: 执行命令失败
vsloong commented 6 years ago

恩,我魅蓝5 6.0系统和三星s8 7.0系统的两种TYPE都可以跳,小米可能特殊吧,所以这里的代码我后面先都改成TYPE_SYSTEM_ALERT好了。 这个错误明显是获取OutputStream的时候失败了,我已经改成单例模式了,应该能解决。你可以先杀掉app重新再打开试试。