我们做的android游戏在自己手机上没问题,可是在别人的手机上就自动退出,试过很多手机了,这是为什么,该怎么办???

解决方案 »

  1.   

    将手机接到电脑上,看LogCat中的提示。根据提示找原因
      

  2.   

    可是我手机为什么没问题,而且我在模拟器上虽然可以运行,但只能运行2关,后面就是内存不足,超过VM Budget了
      

  3.   

    看logcat里的信息啊...
    不看你怎么知道哪里的问题...光靠猜么...
      

  4.   

    可是logcat里没有什么异常啊,只有些看不懂的error,不知道是什么
      

  5.   

    你不把error贴出来,我们如何帮你看,我觉得应该是内存泄露的问题
      

  6.   

    java.lang.IllegalArgument Exception: pointerIndex out of range
    有个这个异常,还有个outofMemory异常,这该怎么处理啊
      

  7.   

    第一个好像是指针越界啊什么的吧?对指针什么的不熟,所以不知道咋整
    至于第二个,内存溢出,这东西就需要你们优化代码了,有这个异常,也难怪有些手机能用有些手机不能用了,因为手机的配置明显不一样,内存优化做得不够好,就连一般的应用都会出现outofMemory异常,更别说对内存优化要求更高的游戏了……总之,修改你的代码,尽量优化内存吧~
      

  8.   

    ……游戏逻辑主要是放在c和c++的话,我帮不了你,对那一块不熟悉,如果是在java层,就是要做好内存的‘回收’工作,比如图片、背景音乐等用完之后记得释放其内存、创建对象、使用对象之后,记得将指向该对象的引用全部移除(即XX=null)……
        其实游戏,特别是大型游戏的逻辑,还是放到c++去处理比较好,具体怎么做,你也可以去搜一下,单单在这交流是不可能完全解决问题,毕竟是你的项目,大家看不到你写的代码,不清楚问题的根本,即使再牛的高手也不可能一两句话就解决这种问题的,而且,即使你把代码贴上,大家也没可能一行一行帮你优化的- -
      

  9.   

    创建对象、使用对象之后,记得将指向该对象的引用全部移除(即XX=null)这句话是什么意思,在destroyed里移除??我是用的JAVA
      

  10.   

    比如说A a = new A();当你使用完a后,就得a = null;这样java的回收机制才能回收刚刚new A()所占的内存,这点内存很小,但是还是这样做最好,最重要的是位图,你的位图用完之后,一定要调用recycle()回收内存
      

  11.   

    那surfaceDestroyed是什么时候调用的?setContentView为别的surfaceview会调用吗,还是让这个surfaceview=null调用?我回收都写到surfaceDestroyed里了