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

На mac OS X стартирам ndk, който генерира някои .so библиотеки, които на теория трябва да могат да се използват многократно в Windows. Въпреки това, когато eclipse прекомпилирам проекта си за Android на Windows, получавам различен размер на apk и той работи по различен начин, отколкото когато цялата компилация на eclipse се извършва на Mac. Работи само изграждането на mac. Без да се вземат .so файловете от компилацията на mac ndk и да се използват повторно в компилацията на Windows. Или това, или нещо различно в това как macs и windows изграждат apk файлове, което не разбирам. Проблемът с генерирания от windows apk е, че той има прекомерна консумация на памет, която не се вижда в 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 build. 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? OS X ли имаш предвид?   -  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 проект (a.e създаване на APK) с Eclipse на Windows.

Би трябвало да работи.

(Направих го за Linphone Android с ядро, написано на чист C)

person Maxim Shoustin    schedule 17.09.2013
comment
Добре. някакви идеи какво може да причини разлики като тази? Проверявам точно същия код от git, но получавам различни резултати в зависимост от това дали apk е генериран на windows срещу osx. - person TestBest; 18.09.2013
comment
със сигурност имаш разлика (не голяма). НА MAC (както всяка друга Linux OS) имате разлика в размерите (~1-3%). Опитайте да копирате файл 1K от Windows в Linux и вижте каква е делтата. - person Maxim Shoustin; 18.09.2013