2016-07-24 5 views
0

Ich baue eine C-App für Android, ich benutze 'sigemptyset' in meiner App, wenn ich den Code mit NDK kompilieren wird es erfolgreich kompiliert, aber beim Ausführen der App bekomme ich cannot locate symbol 'sigemptyset'.Android ndk kann das Symbol "sigemptyset" nicht finden

Nach der Suche habe ich festgestellt, dass das Problem ist, dass ich die App mit ndk-r11 bauen, die für Android-5 bauen, aber ich bin die App auf Android 4.4, wo sigemptyset Definition hat sich geändert. so habe ich die folgenden Android.mk:

TARGET_PLATFORM := android-19 

aber ich bekomme immer noch die gleichen Fehler

Wer weiß, wie dieses Problem beheben?

EDIT:

Diese Frage ist nicht ein Duplikat einer anderen Frage noch die Antwort dort nicht die Version des NDK Änderung der wird APP_PLATFORM Parameter in Application.mk

+0

Mögliches Duplikat von [sigemptyset() NDK UnbefriedigterLinkError dlopen()] (http://stackoverflow.com/questions/25975291/sigemptyset-ndk-unsatisfiedlinkerror-dlopen) – kaitian521

Antwort

1

Die Ursache des Problems schlägt vor, die verwendet wurde, aber Version der Zielplattform. android-19 ist die letzte Plattform-Version, in der (und viele andere Funktionen) als Inline nur bei Plattform-Headern deklariert wurde. Als Ergebnis - system libc auf diesen Geräten enthält solche Funktionen nicht. Sie haben also recht - Sie sollten die richtige Zielplattform verwenden, damit Ihr Code auf älteren Geräten ausgeführt werden kann. Aber du machst es falsch. Alles, was Sie ist

APP_PLATFORM := android-19 

zu Ihrem Application.mk hinzufügen.

+0

Ich habe es bereits gefunden, aber trotzdem danke Ihnen Ihre Antwort ist richtig – ammcom

Verwandte Themen