2012-10-05 3 views
5

Ich arbeite an einer App, wo ich Android NDK & JNI verwenden werde. Jedes Mal, wenn ich meine Anwendung auf jedem Android 4.0 oder eine höhere Version laufen ... wird meine Anwendung zum Absturz bringen und gibt die folgende Fehlermeldung ...Anwendung Absturz mit Android 4.0 oder höher Version

A/libc(18556): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 
D/libEGL(18606): loaded /system/lib/egl/libGLES_android.so 
D/libEGL(18606): loaded /system/lib/egl/libEGL_adreno200.so 
D/libEGL(18606): loaded /system/lib/egl/libGLESv1_CM_adreno200.so 
D/libEGL(18606): loaded /system/lib/egl/libGLESv2_adreno200.so 
I/Adreno200-EGLSUB(18606): <ConfigWindowMatch:2078>: Format RGBA_8888. 
D/OpenGLRenderer(18606): Enabling debug mode 0 

Hauptproblem ist Fatal signal 11 (SIGSEGV) at 0xdeadbaad(code=1)

Wenn jemand darüber Bescheid wissen .. Dann sag mir den Grund.

+0

Ihr .SO hat gebrochen. Sie haben einen Segmentierungsfehler im C-Code. Post-Quelle, formatieren Sie die Antwort und vielleicht können wir irgendwo hinkommen. – Shark

+0

In der Tat. SIGSEGV sollte ein totes Give-Away sein. –

+1

In der Regel gibt es mehr Informationen im Protokoll, siehe zum Beispiel http://StackOverflow.com/Questions/5314036/How-to-use-addr2line-in-android –

Antwort

0

zunächst die Segmentierung Fehler und vor allem die 0xdeadbaad, würde eine Speicherbeschädigung oder ähnliches bedeuten, aber ich habe kürzlich festgestellt, dass mit dem NDK ist dies auch das Standardverhalten für Assertions: auf Assert fehlgeschlagen, sendet es stattdessen SIGSEGV von SIGTRAP und setzt den Speicherzeiger auf diese Hexadezimalzeichenfolge.

Sie sollten überprüfen, ob Ihr Code aktiv ist, oder, falls Sie Software von Drittanbietern verwenden, überprüfen Sie, ob Sie bei jedem Anruf die richtigen Werte übergeben. Eine schnelle Möglichkeit, dies zu überprüfen, wäre das Erstellen Ihrer Bibliothek mit NDEBUG auf 1 gesetzt (standardmäßig, wenn Sie APP_OPTIM: = Release in Ihrer Application.mk setzen) und prüfen, ob Sie immer noch genau das gleiche Problem haben.

Hoffe, das hilft.

Verwandte Themen