【发布时间】:2018-02-14 18:33:50
【问题描述】:
我正在使用vitamio 播放视频和音频,因为我使用了如下所示的 gradle 配置
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
它在所有安卓版本上都能完美运行。
现在我使用 CMaker tutorial 添加了 JNI 代码以进行某些操作,但应用程序在 android 版本 7 上崩溃,只有以下日志
Build fingerprint: 'xiaomi/mido/mido:7.0/NRD90M/V8.5.4.0.NCFMIED:user/release-keys'
Revision: '0'
ABI: 'arm'
pid: 27944, tid: 28106, name: SyncAdapterThre >>> com.mypackage <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x29c
r0 e4685300 r1 00000000 r2 074edc1e r3 000004a1
r4 00000000 r5 0000001a r6 cf6b6740 r7 c63fecf0
r8 c63feca8 r9 00000020 sl c63fecc8 fp 4ec4ec4f
ip 2280b031 sp c63feca8 lr ec409776 pc cf6b6712 cpsr 60010030
在更改 NDK 配置后,如下所示
ndk {
abiFilters "arm64-v8a","armeabi", "armeabi-v7a", "x86","x86_64", "mips"
}
但现在只有以下日志在 android 版本 7 上出现 vitamio 崩溃
Build fingerprint: 'xiaomi/mido/mido:7.0/NRD90M/V8.5.4.0.NCFMIED:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 30859, tid: 30859, name: .onlineradioapp >>> com.mypackage <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
x0 00000000000017a8 x1 0000000000000000 x2 0000007f6c200000 x3 0000000000000002
x4 00000000000001a1 x5 0000000000008080 x6 0000007fa5c62000 x7 0000000000000000
x8 0000000000000000 x9 0000007fa1e0c688 x10 00000000000001a1 x11 0000000000000000
x12 0000000000000018 x13 0000000000000000 x14 0000000000000000 x15 00326d4469b4dcca
x16 0000007fa26625a0 x17 0000007fa26098a8 x18 00000000ffffffff x19 0000007fe80b04e0
x20 0000007f798baa90 x21 0000007f6c3a1480 x22 0000007f798da000 x23 0000007f798da000
x24 0000007f798ba000 x25 0000000000000000 x26 0000000000200021 x27 56c8e96642a3fb3d
x28 0000000000000001 x29 0000007fe80b0480 x30 0000007f798b344c
sp 0000007fe80b0480 pc 0000000000000000 pstate 0000000020000000
ABI 存在问题,在 vitamio 中没有可用于 ABI: 'arm64' 的实现,谁能帮我解决这个问题
谢谢
【问题讨论】:
-
查看包名,与jni一致
-
@KongJing 你能详细解释一下吗?我提到它使用不同的
apiFilter如果我设置arm64-v8a然后加载JNI 库但没有加载vitamio 文件,如果我删除arm64-v8a然后JNI 停止加载,vitamio 开始加载 -
我理解包名不一致,如果有请删除
ndk { abiFilters "armeabi", "armeabi-v7a", "x86", "mips" } -
尽量只留下一个ABI,armeabi-v7a。检查 APK 的内容 - 它的库应该包含所有必要的文件。
-
同意@AlexCohn
标签: android android-ndk java-native-interface vitamio