2016-08-18 10 views
5

В моем приложении используются Here SDK и Twilio SDK. Оба используют собственные библиотеки (здесь SDK с местными библиотеками, локально подключенными к папкам/libs и/jniLibs, Twilio SDK подключен к jCenter). Но на Android 5.1 Здесь SDK выдает исключение «MISSING LIBRARIES: libMAPSJNI.so», хотя эта библиотека присутствует в результате APK. Я открыл папку, где моя программа установлена ​​на устройстве, и сравнивала содержимое в двух случаях: с Twilio SDK или без него. Разница заключается в том, что при подключении Twilio API folder/lib является файлом, и по очевидным причинам загрузчик не может видеть внутри него, то есть необходимо инициализировать исходные библиотеки здесь SDK. Если удалить зависимость градиента Twilio, сборка происходит нормально. Что может быть причиной и как это исправить? В случае необходимости я могу приложить тестовый проект с этим LIBSGradle родные библиотеки не найдены на устройстве, но представлены в apk

ответ

12

Вы должны изменить свой build.gradle так:

android { 
    (...) 
    splits { 
     abi { 
      enable true 
      reset() 
      include 'armeabi-v7a' 
      universalApk false 
     } 
    } 
    (...) 
} 

Это, вероятно, потому, что Twilio SDK поддерживает x86 и HERE SDK в настоящее время не поддерживает ,

+1

Отлично, он работает. Спасибо. – Lumen

+1

Привет, Артем, Спасибо, что вскочил на сообщество Twilio. Можем ли мы отправить вам рубашку, чтобы поделиться нашей оценкой? Отправьте электронное письмо на [email protected] для получения более подробной информации. –

+0

Это относится и к другим архитектурам там. ЗДЕСЬ SDK также не поддерживает (например, arm64-v8a) – AndrewJC

0

Определяя splits блок вы можете сказать Gradle создать APKs for each listed ABI:

include "armeabi", "armeabi-v7a", "x86", "mips" 

В качестве альтернативы вы можете включить все желаемые АБИС в один APK, добавив следующий фильтр:

android { 
(...) 
defaultConfig { 
    (...) 
    ndk { 
     // allow only 32bit *.so libs 
     abiFilters "armeabi", "armeabi-v7a", "x86", "mips" 
    } 
} 

}

Оба подхода исключают 64-битную функциональность, которая может столкнуться с 32-разрядным HERE SDK, но последний будет поддерживать больше устройств с одним APK.

Некоторые библиотеки, как новый Android Room Persistence библиотеки, добавить 32-битные ароматы вместе с двумя 64-битными ABI вкусов arm64-V8A и x86_64. Поскольку HERE SDK на данный момент предоставляет только 32-битную библиотеку, следует исключить 64-битные варианты lib. С другой стороны, ожидается, что 64-битные устройства могут изящно обрабатывать 32-битные библиотеки.

 Смежные вопросы

  • Нет связанных вопросов^_^