Может ли Eclipse использовать файлы .so из компиляции NDK на другой платформе?

В Mac OS X я запускаю ndk, который генерирует некоторые библиотеки .so, которые теоретически должны быть повторно использованы в Windows. Однако, когда я eclipse перекомпилирую свой проект Android в Windows, я получаю другой размер apk, и он работает иначе, чем когда вся сборка eclipse выполняется на Mac. Работает только сборка на маке. Не брать файлы .so из сборки mac ndk и повторно использовать их в сборке Windows. Либо это, либо что-то другое в том, как Mac и Windows создают файлы apk, чего я не понимаю. Проблема с apk, сгенерированным Windows, заключается в том, что у него есть перерасход памяти, которого нет в apk, сгенерированном исключительно на osx.

Итак, чтобы уточнить это (НА MAC OS X), работает:

1) запустите ndk на osX, создайте файлы .so 2) OS X eclipse скомпилирует приложение для Android и развернет его на устройстве. 3) OS X eclipse запускает apk на устройстве.

сгенерированный apk, конечно же, работает на всех устройствах.

Это (НА WINDOWS) НЕ работает: 1) в Windows используйте .so, сгенерированный при сборке osx ndk. 2) Windows eclipse компилирует приложение для Android, используя файлы .so, сгенерированные ndk в OS X. 3) eclipse запускает apk на устройстве. APK имеет другое количество байтов, и хотя он загружается, теперь он генерирует ошибки памяти, в отличие от APK, разработанного исключительно для OS X.

Спасибо!


person TestBest    schedule 17.09.2013    source источник
comment
Подождите, а как вы генерируете APK на iOS? Вы имеете в виду ОС Х?   -  person kabuko    schedule 18.09.2013
comment
да, OS X, я это исправлю.   -  person TestBest    schedule 18.09.2013
comment
Используете ли вы ту же версию цепочки инструментов? Если у вас разные версии NDK SDK, цепочки инструментов могут отличаться.   -  person Dragos Iordache    schedule 18.09.2013


Ответы (1)


Вы можете скомпилировать кроссплатформенный код (также известный как NDK) на OSx (MAC) и получить файлы *.so, *.a.

После сборки проекта Android (например, создания APK) с помощью Eclipse в Windows.

Он должен работать.

(Я делал это для Linphone Android с ядром, написанным на чистом C)

person Maxim Shoustin    schedule 17.09.2013
comment
Ok. есть идеи, что может вызвать такие различия? Я проверяю точно такой же код из git, но получаю разные результаты в зависимости от того, генерируется ли apk в Windows или OSX. - person TestBest; 18.09.2013
comment
наверняка у вас есть разница (не большая). НА MAC (как и на любой другой ОС Linux) у вас есть разница в размерах (~ 1-3%). Попробуйте скопировать файл 1К из винды в линукс и посмотрите какая дельта. - person Maxim Shoustin; 18.09.2013