Android 如何在两个项目中使用相同的.so文件时恢复应用程序崩溃?
我在我的一个projectFirst项目中使用了example.so文件,我在设备中成功编译并运行了该项目,但我在另一个projectSecond项目中使用了相同的.so文件,如果我在设备中运行该项目,它将被强制关闭 我发现了问题,如果我卸载第一个项目,第二个项目运行时没有强制关闭 =>是否无法在同一设备中运行这两个项目 我的日志猫的反应是Android 如何在两个项目中使用相同的.so文件时恢复应用程序崩溃?,android,android-ndk,Android,Android Ndk,我在我的一个projectFirst项目中使用了example.so文件,我在设备中成功编译并运行了该项目,但我在另一个projectSecond项目中使用了相同的.so文件,如果我在设备中运行该项目,它将被强制关闭 我发现了问题,如果我卸载第一个项目,第二个项目运行时没有强制关闭 =>是否无法在同一设备中运行这两个项目 我的日志猫的反应是 pid: 16631, tid: 16631, name: com.oneconnect >>> com.oneconnect
pid: 16631, tid: 16631, name: com.oneconnect >>> com.oneconnect <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
r0 00000027 r1 deadbaad r2 00000180 r3 00000000
r4 00000000 r5 be8e5e7c r6 5edcde60 r7 5edcec14
r8 00000194 r9 410fdc84 sl 41dee1b8 fp be8e5f04
ip fffda808 sp be8e5e78 lr 4014554d pc 40141be2 cpsr 60000030
d0 64656c6961662022 d1 6a702f326175736f
d2 546f7475615f676e d3 4f74696d736e6120
d4 6441203a726f7272 d5 6c61207373657264
d6 6e69207964616572 d7 0155748065737520
d8 0000000000000000 d9 0000000000000000
d10 0000000000000000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 4175574808000000 d17 3fe0000000000000
d18 00000012410fdc48 d19 5ec4af845ef2c18e
d20 6574726f70707553 d21 4000680000720064
d22 0000000000000000 d23 be8e62ac00000000
d24 00f500f500f500f5 d25 00a100a100a100a1
d26 00a100a100a100a1 d27 00a100a100a100a1
d28 0100010001000100 d29 0100010001000100
d30 0000000100000001 d31 0000000100000001
scr 80000010
backtrace:
#00 pc 0001abe2 /system/lib/libc.so
#01 pc 00018208 /system/lib/libc.so (abort+4)
#02 pc 00021ab9 /system/lib/libc.so (__assert2+60)
#03 pc 00149af0 /data/app-lib/com.oneconnect-1/libmtapjsua2.so (pjsua_acc_add+284)
#04 pc 00110d54 /data/app-lib/com.oneconnect-1/libmtapjsua2.so (pj::Account::create(pj::AccountConfig const&, bool)+100)
stack:
be8e5e38 00000000
be8e5e3c 4164053a /dev/ashmem/dalvik-card-table (deleted)
be8e5e40 4016f160 /system/lib/libc.so
be8e5e44 5afafc70
be8e5e48 4016f160 /system/lib/libc.so
be8e5e4c 00000001
be8e5e50 4016f254 /system/lib/libc.so
be8e5e54 4016f1b4 /system/lib/libc.so
be8e5e58 00000000
be8e5e5c 4014554d /system/lib/libc.so (_fwalk+32)
be8e5e60 00000001
be8e5e64 be8e5e7c [stack]
be8e5e68 5edcde60 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5e6c 5edcec14 /data/app-lib/com.oneconnect-1/libmtapjsua2.so (__PRETTY_FUNCTION__.19088)
be8e5e70 df0027ad
be8e5e74 00000000
#00 be8e5e78 00000194
be8e5e7c fffffbdf
be8e5e80 5edcddf4 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5e84 5edcde60 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5e88 5edcec14 /data/app-lib/com.oneconnect-1/libmtapjsua2.so (__PRETTY_FUNCTION__.19088)
be8e5e8c 40144ab9 /system/lib/libc.so (fprintf+16)
be8e5e90 4016f1b4 /system/lib/libc.so
be8e5e94 40167ed1 /system/lib/libc.so
be8e5e98 5edcddf4 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5e9c 4013f20c /system/lib/libc.so (__pthread_clone)
#01 be8e5ea0 be8e5ea0 [stack]
be8e5ea4 40148abd /system/lib/libc.so (__assert2+64)
#02 be8e5ea8 5edcec14 /data/app-lib/com.oneconnect-1/libmtapjsua2.so (__PRETTY_FUNCTION__.19088)
be8e5eac 5edcde60 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5eb0 5edcde60 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5eb4 5edcde60 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5eb8 5ee11d64 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5ebc 5ee11d64 /data/app-lib/com.oneconnect-1/libmtapjsua2.so
be8e5ec0 00000000
be8e5ec4 410fdc9c
感谢您的回复 这应该是可能的。1强制关闭不提供信息,您应提供adb logcat输出的相关部分。2.如何安装。那么?市场应用程序和设备制造商使用不同的方法,加上黑客在根设备上使用安装脚本。3您的图书馆是否获得了全系统的资源?特别是,有限的资源可能只是内存。我在libs armbi、armbi-v7等中使用不同的文件夹strct和不同的文件。因此,回溯显示pj::Account::create调用了pjsua_acc_add,该函数执行了一个u断言。断言失败了,libc执行了abort,它跳转到操作系统开发人员想要的地址0xdeadbaad pun:dead&bad。我可以猜,这个断言是关于获取一些共享资源的。你需要在pjsua_acc_add的源代码中找到问题。请参阅@user1846931的链接:我的问题已经解决了,谢谢回复。