2016-04-27 28 views
0

我嘗試使用liblinphone與android studio使用來自linphone站點的'.so'文件,我用ndk 9,10,11,12版本自己構建它。如果我在安裝Linphone中應用它與平臺x86_64liblinphone android x86_64 ffmpeg無法加載

04-27 02:37:01.404 13883-13883/? I/LinphoneCoreFactoryImpl: Trying to load liblinphone for x86_64 
04-27 02:37:01.410 13883-13883/? W/LinphoneCoreFactoryImpl: Unable to load optional library libffmpeg-linphone-x86_64 
04-27 02:37:01.411 13883-13883/? I/LinphoneCoreFactoryImpl: Trying to load liblinphone for x86 
04-27 02:37:01.414 13883-13883/? W/LinphoneCoreFactoryImpl: Unable to load optional library libffmpeg-linphone-x86 
04-27 02:37:01.417 13883-13883/? D/AndroidRuntime: Shutting down VM 

:總是x86_64平臺出現在Android的監控錯誤。 請幫忙,我可以做錯什麼?

回答

0

我對arm64體系結構有類似的問題,我使用下面提到的解決方案解決了這個問題。

到目前爲止我發現的最好的解決方案(並且被警告:這是一個討厭的黑客攻擊)就是簡單地從您的APK中排除所有64位二進制文​​件。如果沒有找到64位依賴關係,Android會很樂意加載所有.so的32位後備版本,並且工作得很好,假設您不依賴任何64位特定功能。爲了實現這一點在你的項目,請按照下列步驟操作:

  1. 在你gradle.properties在項目的根,添加行

    android.useDeprecatedNdk=true. 
    
  2. 以下塊添加到您的build.gradle文件,添加一個排除線每一個64位的依賴性:

    android { 
    ... 
    defaultConfig { 
    ... 
    ndk { 
        abiFilters "armeabi-v7a", "x86" 
    } 
    
    packagingOptions { 
        exclude "lib/arm64-v8a/librealm-jni.so" 
        } 
        } 
    } 
    

一旦你大功告成一定要生成APK與新的配置並測試它的ARM64設備上。

Source of this solution