是否其它模块占用太多内存了,或者存在内存泄漏,每个 android 进程最大 16M 字节空间。你在 apk 刚启动的时候,就载入呢?

解决方案 »

  1.   

    应该是太大了,拆开吧,比如so里要是读什么文件,就把文件放assets里,然后读完了传到jni接口里,不要在jni里把文件打进去。
      

  2.   

    我曾经做过3M的so,也没问题啊。应该不是so大小的问题。
      

  3.   

    是否是因为把 package 名称修改,导致函数找不到了?
      

  4.   

    你这个应该不是.so文件大小问题造成的(我们项目的.so文件优化完成都3.5M左右,你那个大小应该没有问题),看你的问题提示应该是.so文件访问数据不成功造成的吧,你自己看看源代码之间调用是否出现过问题。
      

  5.   

    to Nc460523019:
    你说得很有道理啊,肯定不是大小造成的。你的意思是,函数互相调用的时候,有些函数实际没有完成是吗?还是说,出现了循环引用的情况? 不过链接确实都是成功的啊。感觉NDK的链接器可能有些问题,某些链接错误检查不出来?能说说具体可能是哪些问题吗?
      

  6.   

    build/core/prelink-linux-arm.map 是否需要配置呢
      

  7.   

    我用cygwin在windows环境下编译的,没有这个文件哦。
      

  8.   

    这个也是有可能的,在编译so的时候,对应的packagename都是写死的,比如是com.test.youjni里的一个testJNI类,那你在用的时候,也要创建对应的com.test.youjni的java文件。然后再去用testJNI里的native函数。