2017-09-06 23 views
0

ABI過濾器,我使用vitamio爲播放視頻和音頻,我已經使用gradle這個配置類似下面應用程序中獲得,因爲在Android的

ndk { 
       abiFilters "armeabi", "armeabi-v7a", "x86", "mips" 
     } 

它在所有Android版本完美的工作的崩潰。

使用 CMaker tutorial一些操作,但應用

現在我HAVA添加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上的維生素只有以下日誌

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'實現任何人都可以幫助我解決這個問題

謝謝

+0

檢查包的名字,它是用JNI – KongJing

+0

@KongJing一致能否請您詳細解釋一下嗎?因爲我說出來,用不同的'apiFilter'工作,如果我設置' arm64-v8a'然後JNI庫加載,但vitamio文件沒有加載,如果我刪除'arm64-v8a',然後JNI停止加載和vitamio開始加載 –

+0

據我所知,包名稱不一致,如果刪除'ndk {0} {iframe {abiFilters} armeabi 「,」armeabi-v7a「,」x86「,」mips「 }' – KongJing

回答

0

HELLO-jni.c

Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *env,jobject thiz) 

HelloJni.java

package com.example.hellojni; 

static { 
     System.loadLibrary("hello-jni"); 
    } 

public native String stringFromJNI(); 

據我瞭解,包是不一樣的原因

+0

包是一樣的,沒有問題那 –

+0

刪除ndk {abiFilters「armeabi」,「armeabi-v7a」,「x86」,「mips」},可以解決這個問題嗎? – KongJing

+0

在這種情況下,因爲默認情況下vitamio會崩潰,因此它會爲所有ABI版本生成.so文件,並且沒有針對所有ABI版本的實現 –

相關問題