javagame吧 关注:47,736贴子:211,963

【教程】解决游戏提示“请在手机上运行游戏”

只看楼主收藏回复

如图所示,用模拟器游玩游戏的时候,提示“请在手机上运行游戏”


IP属地:陕西1楼2022-03-27 11:26回复
    原理分析:
    游戏代码中通过totalMemory代码检测内存,内存大于某个数值,比如6291456字节(即6M)时,判定你是在使用模拟器(因为早期手机内存均不大)。
    totalMemory()这个方法返回的是java虚拟机现在已经从操作系统那里挖过来的内存大小,也就是java虚拟机这个进程当时所占用的所有内存。


    IP属地:陕西2楼2022-03-27 11:31
    回复
      使用Luyten打开需要处理的游戏

      编辑,查找所有

      搜索totalMemory


      IP属地:陕西3楼2022-03-27 11:34
      回复
        可以看到a.class中有totalMemory相关代码
        打开a.class,编辑,查找,继续搜索totalMemory

        可以看到有判断,内存大于6291456字节(即6M)时,判定你是在使用模拟器

        往上翻一下,发现相关代码在a.class的o方法中


        IP属地:陕西4楼2022-03-27 11:39
        回复
          用halo打开要处理的游戏

          在a.class上面点击鼠标右键,选择edit class

          找到o方法


          IP属地:陕西5楼2022-03-27 11:43
          回复
            在右边代码里面一直向下拉,找到6291456

            鼠标选中后,点击右边的编辑(高级)

            将代码改成ldc2_w 60767076352

            确定之后点击上方的保存,然后依次选择编译,打包


            IP属地:陕西6楼2022-03-27 11:48
            回复
              修改结果如图所示


              IP属地:陕西7楼2022-03-27 11:50
              回复
                解释:
                只是简单改了判断条件,将本来的6291456(6M)修改为60767076352(57952M),因为内存无论如何也不会超过57952M,所以模拟器检测自动失效


                IP属地:陕西8楼2022-03-27 11:56
                回复
                  安装修改后的游戏,发现可以正常游玩了


                  IP属地:陕西9楼2022-03-27 11:57
                  回复
                    顺便提示:
                    偶尔有部分游戏,在模拟器上打开闪退,这个时候有可能也是因为游戏里面有模拟器检测,同样是利用totalMemory检测内存,如果内存超过一定数值,游戏强制关闭,所以遇到相关情况同样可以参考本教程


                    IP属地:陕西10楼2022-03-27 12:00
                    回复
                      可以,相当6


                      IP属地:山东来自Android客户端11楼2022-03-27 14:14
                      回复
                        求改好后的游戏谢谢楼主


                        IP属地:湖南来自Android客户端12楼2022-03-27 19:18
                        收起回复
                          太强了


                          IP属地:江苏来自手机贴吧13楼2022-03-28 08:47
                          回复
                            楼主太溜了。支持支持


                            来自Android客户端14楼2022-03-28 13:19
                            回复
                              楼主 我好像发完q 帖子被删除了 实在不好意思 您看下我的私信


                              IP属地:广东来自Android客户端15楼2022-03-30 21:08
                              收起回复