如果我为armv7编译所有内容,它就能完美运行。 如果我为armv6编译所有东西,它在调用第一个ffmpeg函数时崩溃,我不理解崩溃输出。
可能是什么问题?
我使用ndk-8e并使用minSdk = 8 targetSdk = 17 我在Android 2.2模拟器上试过这个(同样高堆大小= 128mb,看看它是否有效,但它不是..)
08-11 18:36:28.904: I/DEBUG(30): signal 4 (SIGILL), fault addr 81247524
08-11 18:36:28.904: I/DEBUG(30): r0 81b346a0 r1 81b347bc r2 81b34702 r3 00000002
08-11 18:36:28.904: I/DEBUG(30): r4 00000001 r5 00000002 r6 00005601 r7 0000011a
08-11 18:36:28.904: I/DEBUG(30): r8 814cf2d0 r9 8090eca1 10 00000001 fp 0022c928
08-11 18:36:28.904: I/DEBUG(30): ip 00000006 sp 5ca0173c lr 812d6404 pc 81247524 cpsr 80000010
08-11 18:36:29.014: D/dalvikvm(58): GC_FOR_MALLOC freed 10199 objects / 574352 bytes in 153ms
08-11 18:36:29.183: I/DEBUG(30): #00 pc 00247524 /data/data/com.myapp/lib/libffmpeg.so
08-11 18:36:29.183: I/DEBUG(30): #01 lr 812d6404 /data/data/com.myApp/lib/libffmpeg.so
08-11 18:36:29.183: I/DEBUG(30): code around pc:
08-11 18:36:29.183: I/DEBUG(30): 81247504 e15c0007 e14260b2 e5d35003 e5d3a002
08-11 18:36:29.183: I/DEBUG(30): 81247514 e5d34004 e1c260b0 e1a05085 e1a0308a
08-11 18:36:29.183: I/DEBUG(30): 81247524 e6ef5075 e064a005 e6ef3073 e28aa001
08-11 18:36:29.193: I/DEBUG(30): 81247534 e2836001 e0854004 e5c14000 e5c1a001
08-11 18:36:29.193: I/DEBUG(30): 81247544 e5c06001 e5c03000 e2822004 e2811002
08-11 18:36:29.193: I/DEBUG(30): code around lr:
08-11 18:36:29.193: I/DEBUG(30): 812d63e4 eb057846 e3500000 1afffff7 e5943048
08-11 18:36:29.193: I/DEBUG(30): 812d63f4 e3530000 08bd8070 e1a00004 e12fff33
08-11 18:36:29.193: I/DEBUG(30): 812d6404 e8bd8070 007bbc14 007bbbe8 e92d4010
08-11 18:36:29.193: I/DEBUG(30): 812d6414 e5d1c001 e5d04001 e5d02000 e5d13000
08-11 18:36:29.193: I/DEBUG(30): 812d6424 e06c0004 e0633002 e0830400 e8bd8010
08-11 18:36:29.193: I/DEBUG(30): stack:
08-11 18:36:29.193: I/DEBUG(30): 5ca016fc 00000000
08-11 18:36:29.193: I/DEBUG(30): 5ca01700 00000000
08-11 18:36:29.193: I/DEBUG(30): 5ca01704 00000000
08-11 18:36:29.193: I/DEBUG(30): 5ca01708 00000000
08-11 18:36:29.193: I/DEBUG(30): 5ca0170c 00000000
08-11 18:36:29.193: I/DEBUG(30): 5ca01710 00000000
08-11 18:36:29.193: I/DEBUG(30): 5ca01714 00000000
08-11 18:36:29.193: I/DEBUG(30): 5ca01718 00000000
08-11 18:36:29.193: I/DEBUG(30): 5ca0171c 00000000
08-11 18:36:29.203: I/DEBUG(30): 5ca01720 00000000
08-11 18:36:29.203: I/DEBUG(30): 5ca01724 00000000
08-11 18:36:29.203: I/DEBUG(30): 5ca01728 00000000
08-11 18:36:29.203: I/DEBUG(30): 5ca0172c 00000000
08-11 18:36:29.203: I/DEBUG(30): 5ca01730 df002777
08-11 18:36:29.203: I/DEBUG(30): 5ca01734 e3a070ad
08-11 18:36:29.203: I/DEBUG(30): 5ca01738 815d9bd0 /data/data/com.myApp/lib/libffmpeg.so
08-11 18:36:29.203: I/DEBUG(30): #00 5ca0173c 815d9c60 /data/data/com.myApp/lib/libffmpeg.so
08-11 18:36:29.203: I/DEBUG(30): 5ca01740 815d9bd0 /data/data/com.myApp/lib/libffmpeg.so
08-11 18:36:29.213: I/DEBUG(30): 5ca01744 8094b9c4 /data/data/com.myApp/lib/mycustomlib.so
08-11 18:36:29.213: I/DEBUG(30): 5ca01748 afd489b0
08-11 18:36:29.213: I/DEBUG(30): 5ca0174c 00100000 [heap]
08-11 18:36:29.213: I/DEBUG(30): 5ca01750 5c902000
08-11 18:36:29.213: I/DEBUG(30): 5ca01754 812d6404 /data/data/com.myApp/lib/libffmpeg.so
08-11 18:36:29.213: I/DEBUG(30): 5ca01758 815d0c00 /data/data/com.myApp/lib/libffmpeg.so
08-11 18:36:29.213: I/DEBUG(30): 5ca0175c 80952dec /data/data/com.myApp/lib/mycustomlib.so
08-11 18:36:29.213: I/DEBUG(30): 5ca01760 8094b9c4 /data/data/com.myApp/lib/mycustomlib.so
08-11 18:36:29.213: I/DEBUG(30): 5ca01764 8107b964 /data/data/com.myApp/lib/libffmpeg.so
08-11 18:36:29.213: I/DEBUG(30): 5ca01768 0022c928 [heap]
08-11 18:36:29.213: I/DEBUG(30): 5ca0176c 8090da63 /data/data/com.myApp/lib/mycustomlib.so
08-11 18:36:29.213: I/DEBUG(30): 5ca01770 00000000
08-11 18:36:29.213: I/DEBUG(30): 5ca01774 00000000
08-11 18:36:29.213: I/DEBUG(30): 5ca01778 00000000
08-11 18:36:29.224: I/DEBUG(30): 5ca0177c 00000000
08-11 18:36:29.224: I/DEBUG(30): 5ca01780 80953024 /data/data/com.myApp/lib/mycustomlib.so
答案 0 :(得分:0)
我找到了解决方案。此问题仅发生在模拟器上。这可能是与模拟器本身相关的问题。
对于有类似问题的人:在真实设备上试试你的包裹。我在一个真正的armv6设备上尝试了相同的包,但它确实有效。