小白求助SO调用

konglingwei110 2020-10-15 12:15:06
我拿到其他APP中的SO文件,也知道了其中调用的方法,现在想把他的SO文件放到自己的APP中并调用,这个可以实现么?
...全文
15291 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
usecf 2020-10-20
  • 打赏
  • 举报
回复
看错误是可以找到对应的so库文件,调用是没问题的,就像大家说的那样 应该是你引用的这个so内部地址出错了 你要具体看下这个so库想代码才行
天宇365 2020-10-19
  • 打赏
  • 举报
回复
不一定能调用的,比如我so库里面如果有判断应用程序的包名,然后判断如果不是某个包名,就报异常,那就不能使用了。 我们之前有so库就这么干的。
闫文敬 2020-10-17
  • 打赏
  • 举报
回复
报错信息与java层调用无关,是c指针地址找不到。 原始的文件是不是比你写的代码还要多,被你精简掉了?
不会写代码的猴子 版主 2020-10-17
  • 打赏
  • 举报
回复
是不是除了so动态链接库,还有其他jni接口?(cpp文件) 你这报错是调用so库时踩内存,应该是so库内部问题。不是加载库或者调用接口的错。你是不是少了些东西
konglingwei110 2020-10-17
  • 打赏
  • 举报
回复
引用 1 楼 weixin_43845112 的回复:
可以啊,写相同类路径的java native方法,名称参数对应上就行
感谢回复,我就是按照这种方式去写的,但是在Activity 中调用一直报错
31045-31045/com.example.test7 A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 31045 (m.example.test7), pid 31045 (m.example.test7)
JNI代码
package com.example.obs.applibrary.jni;

public class JniUtils {
   

    public static native String getKey();

    static {
        System.loadLibrary("native-lib");
    }
}
包名、类名、方法名,和原APP完全一致,麻烦帮忙看下,非常感谢
konglingwei110 2020-10-17
  • 打赏
  • 举报
回复
引用 2 楼 蓝色的天空ywj 的回复:
你需要在你的项目中创建一个目录和类名、方法名都一致的TestA,然后你在其他逻辑调用TestA.getContent("xxx") 即可 例子如下:

package com.extend.demo;

public class TestA {
    static {
        System.loadLibrary("xxx");
    }
    public static native String getContent(String xxx);
} 
感谢回复,我就是按照这种方式去写的,但是在Activity 中调用一直报错
31045-31045/com.example.test7 A/libc: Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 31045 (m.example.test7), pid 31045 (m.example.test7)
JNI代码
package com.example.obs.applibrary.jni;

public class JniUtils {
   

    public static native String getKey();

    static {
        System.loadLibrary("native-lib");
    }
}
包名、类名、方法名,和原APP完全一致,麻烦帮忙看下,非常感谢
weixin_43845112 2020-10-15
  • 打赏
  • 举报
回复
可以啊,写相同类路径的java native方法,名称参数对应上就行
闫文敬 2020-10-15
  • 打赏
  • 举报
回复
你需要在你的项目中创建一个目录和类名、方法名都一致的TestA,然后你在其他逻辑调用TestA.getContent("xxx") 即可 例子如下:

package com.extend.demo;

public class TestA {
    static {
        System.loadLibrary("xxx");
    }
    public static native String getContent(String xxx);
} 

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧