V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yujian0x37
V2EX  ›  问与答

求助Android APP版本兼容问题

  •  
  •   yujian0x37 · 2013-04-19 13:37:27 +08:00 · 4508 次点击
    这是一个创建于 4031 天前的主题,其中的信息可能已经有所发展或是发生改变。
    APP通过JNI调用了Android源码中关于AndioTrack的一些函数来播放声音,在4.0下编译,4.0的手机上使用OK,但在4.1的手机上一加载JNI库就报错崩溃了。

    java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1306]: 37 cannot locate '_ZN7android10AudioTrack3setEijiiijPFviPvS1_ES1_iRKNS_2spINS_7IMemoryEEEbi'...


    求教,有什么解决办法,一般Android上报本兼容是怎么做的,不会是每个版本编一个库吧?
    5 条回复    1970-01-01 08:00:00 +08:00
    yujian0x37
        1
    yujian0x37  
    OP
       2013-04-19 13:38:02 +08:00
    求大神指点啊!!T T
    ljbha007
        2
    ljbha007  
       2013-04-19 13:40:07 +08:00
    解决办法就是不要调用GOOGLE的私有API
    GOOGLE的ANDROID官网说的很明确 不保证私有API各个版本兼容
    yujian0x37
        3
    yujian0x37  
    OP
       2013-04-19 13:46:18 +08:00
    @ljbha007 那是不是只能通过JAVA调用API,不能在JNI中调底层函数呢?
    ljbha007
        4
    ljbha007  
       2013-04-19 13:50:49 +08:00   ❤️ 1
    @yujian0x37 可以啊 只有NDK文档里边提到的API是可以安全调用的 其他都不保证 而且不同发行商固件中的的共享库可能不同 所以你调用到的共享库不一定存在 如果存在版本也不一定一样
    yujian0x37
        5
    yujian0x37  
    OP
       2013-04-19 14:06:30 +08:00
    @ljbha007 多谢~~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   937 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:25 · PVG 07:25 · LAX 16:25 · JFK 19:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.