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

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

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

jni.h本身没有开放 JNI_CreateJavaVM接口,尝试过通过 dlopen和dlsym的方法来暴露这接口,这里有个博客,说到了这个方法,看起来是可以成功的:80bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6U0j5h3I4W2j5X3k6W2L8Y4c8G2L8W2)9J5k6h3N6A6N6r3S2#2j5W2)9J5k6h3W2G2i4K6u0r3x3U0l9I4y4#2)9J5c8U0l9@1i4K6u0r3x3o6g2Q4x3V1k6U0M7X3g2S2N6r3W2F1k6#2)9#2k6X3A6S2N6X3q4Q4y4h3k6$3L8g2)9#2k6X3k6J5L8$3#2Q4y4h3k6S2L8X3c8J5L8$3W2V1i4K6g2X3L8X3q4@1K9i4k6W2i4K6g2X3j5$3!0V1k6b7`.`.

由于我现在用的是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)

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

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 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
活跃值: (345)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
f74K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6J5k6h3c8F1j5h3N6S2i4K6u0r3L8X3q4@1K9i4k6W2i4K6u0V1M7$3S2A6L8b7`.`.
2018-8-27 11:17
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
yezhulove 3d0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6J5k6h3c8F1j5h3N6S2i4K6u0r3L8X3q4@1K9i4k6W2i4K6u0V1M7$3S2A6L8b7`.`.
Done !
2018-8-27 12:25
0
雪    币: 225
活跃值: (4093)
能力值: ( 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
游客
登录 | 注册 方可回帖
返回