在自家平台上运行一个游戏报出以下错误就直接退出了,从表面上看貌似是lib中不存在相应的C方法,不过这个游戏安装在其它平台上却跑得很欢dalvikvm(1753): JNI WARNING: 0x40539680 is not a valid JNI reference
dalvikvm(1753): in Lcom/revo/sog/natives/FileMgr;.SetAppDir (Ljava/lang/String;)V (CallStaticVoidMethodV)

解决方案 »

  1.   

    FileMgr里一共封装了4个native方法,在我们平台只有其中的一个是可以正常调用的,另外三个都会报出类似上面的错误
      

  2.   

    游戏是别人开发的,我只想让它能在我们的平台上跑起来。
    我们用的是TI的方案,跑android2.3,别人的是高通的方案,但像游戏这种应用没理由会依赖于底层的东西吧
      

  3.   

    原则上不需要我自己编译的,我拿过来就是一个apk,应该是安装后就可以直接跑的
      

  4.   

    jni封装的4个方法里面有1个可以调用另3个不可以,由这点我觉得应该是可以排除编译环境的问题了
      

  5.   

    jni封装的4个方法里面有1个可以调用另3个不可以,由这点我觉得应该是可以排除编译环境的问题了
    ---------------------------------------------------------------------------------
    这些信息都是我反编译出它的apk,然后测试出来的。
    那4个方法应该都由apk里自带的Lib来实现了,否则在其它平台它也应该跑不起来。
    但不知道在我们平台为啥就报找不到了呢,有没有什么方法可以验证或排除呢?
      

  6.   

    dalvikvm(1753): in Lcom/revo/sog/natives/FileMgr;.SetAppDir (Ljava/lang/String;)V (CallStaticVoidMethodV) 这三个方法不可以调用吧。可能是由于对方的lib库在你的硬件上调用相应的驱动,没有实现。你看看在高通的片子上调用驱动,是否和TI的骗子上调用的驱动的写法是否一致。
      

  7.   

    我的平台也是一樣的信息!
    請問高通的平台也是Android2.3的嗎?
      

  8.   

     
     我们也用高通平台,这个问题也困扰了我好久,最后找出了原因:
     
     1.编译android时必须选择user模式编译;
     2.必须要有gsensor,也就是可以转屏。 发现好多apk只有在user模式下才能正常运行,eng模式无法运行。