NDK: как собрать библиотеку, чтобы приложение могло работать на ARM, x86 и т. д.?

Я никогда раньше не использовал C++ для Android и NDK. Когда я использую его, скажем, для обработки изображений, я хочу быть уверенным, что приложение будет работать на всех устройствах с Android 2.2 и выше.

Когда я пишу для iPhone, xcode компилирует 2 бинарника для архитектур arm7 и arm7s и упаковывает их в один и тот же бандл.

Теперь я написал пример приложения NDK, которое не хочет работать на эмуляторе Android x86, но хорошо работает на моем Nexus 7. Я думаю, очевидно, что это должен быть способ заставить его работать как на руке, так и на x86, но все еще может не найти. Кто-нибудь знает? Спасибо!


person Tertium    schedule 15.05.2013    source источник
comment
Это может помочь stackoverflow.com/ вопросы/10098049/   -  person Simon    schedule 15.05.2013
comment
Да, но APP_ABI := все более универсальный ответ   -  person Tertium    schedule 15.05.2013
comment
Дополнительный вопрос: как это сделать, если вы вручную вызываете инструменты NDK для создания общей библиотеки (т. е. Application.mk не существует)?   -  person technomage    schedule 15.05.2013
comment
создайте его и добавьте эту строку. ручная ndk-build учтет это и создаст папки для каждого нового *.so. Когда вы создаете свой проект Java, он будет включать их все и выбирать, что запускать во время выполнения.   -  person Tertium    schedule 15.05.2013


Ответы (2)


Извините, глупый вопрос. На всякий случай: вам нужно просто добавить в Application.mk эту строку:

APP_ABI := all
person Tertium    schedule 15.05.2013

это может помочь вам, я думаю,

Пример рекомендаций по переносу приложений: http://software.intel.com/en-us/articles/using-the-android-x86-ndk-with-eclipse-and-porting-an-ndk-sample-app< /а>

person Priya Karchiappan    schedule 25.10.2013