首页
社区
课程
招聘
[求助]如何用Native程序来创建JVM
发表于: 2018-6-21 16:08 5657

[求助]如何用Native程序来创建JVM

2018-6-21 16:08
5657
需求:不通过APP,直接在native 代码里面创建JVM,并能调用jni接口函数
编译环境可以是NDK,也可以基于AOSP

jni.h本身没有开放 JNI_CreateJavaVM接口,尝试过通过 dlopen和dlsym的方法来暴露这接口,这里有个博客,说到了这个方法,看起来是可以成功的:https://calebfenton.github.io/2017/04/05/creating_java_vm_from_android_native_code

由于我现在用的是8.0的手机,没有libdvm.so 了,改成了libart.so(这是唯一的区别)。
发现可以编译通过,但是运行出错 ,就死在 JNI_CreateJavaVM的调用那里。tombstone:
backtrace:
    #00 pc 0000000000021ce4  /system/lib64/libc.so (abort+116)
    #01 pc 0000000000000778  /system/lib64/libsigchain.so (AddSpecialSignalHandlerFn+20)
    #02 pc 00000000001a2c38  /system/lib64/libart.so (art::FaultManager::Init()+140)
    #03 pc 000000000047cf48  /system/lib64/libart.so (art::Runtime::Init(art::RuntimeArgumentMap&&)+14288)
    #04 pc 000000000047ffa4  /system/lib64/libart.so (art::Runtime::Create(std::__1::vector<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void const*>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void const*>>> const&, bool)+128)
    #05 pc 00000000002ef4f4  /system/lib64/libart.so (JNI_CreateJavaVM+744)
    #06 pc 00000000000037a8  /data/local/tmp/jni_test
    #07 pc 0000000000003a3c  /data/local/tmp/jni_test
    #08 pc 00000000000acdcc  /system/lib64/libc.so (__libc_init+88)

好复杂,看不懂。。哪位大侠知道为啥不?
或者还有什么别的招么?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 59
活跃值: (185)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
自己顶一下
2018-6-28 14:24
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主有解决吗?
2018-8-27 10:59
0
雪    币: 1787
活跃值: (340)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
https://github.com/rednaga/native-shim
2018-8-27 11:17
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
yezhulove https://github.com/rednaga/native-shim
Done !
2018-8-27 12:25
0
雪    币: 268
活跃值: (3243)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
heartbeast 自己顶一下
这样做的好好处有那些,,可以不用运行app勾住类?
2019-1-12 15:51
0
雪    币: 50
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
JNIEXPORT void AddSpecialSignalHandlerFn() {

}
2021-2-26 14:57
0
游客
登录 | 注册 方可回帖
返回
//