2013-06-09 11 views
15

Ich versuche, den nativen Code in der "csipsimple" Android App mit der Debug As->Android Native Application Option zu debuggen. Ich habe this Tutorial verwendet, um es zu tun. Ich halte diese Fehler bekommen:Debuggen von nativem Code in Android unter Eclipse schlägt fehl

[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] Android 
[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] NDK: 
[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] Uses 
[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] local 
[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] settings 
[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] 
[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] 
[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] 
[2013-06-09 17:24:24 - SipHome] Unknown Application ABI: 
[2013-06-09 17:24:24 - SipHome] 
armeabi 
[2013-06-09 17:24:24 - SipHome] Unable to detect application ABI's 

Ich versuchte

Unable to detect application ABI's when trying to debug NDK (nicht relevant, ich habe nicht verwenden Sequoya),

http://www.cocos2d-x.org/boards/6/topics/24216 (funktionierte nicht)

https://groups.google.com/forum/?fromgroups#!topic/android-ndk/icsQtRy1FZQ (arbeitete geheimnisvoll nur einmal)

http://www.mjbshaw.com/2012/11/android-ndk-eclipse-fixing-unknown.html (nicht das Problem)

http://en.it-usenet.org/thread/12874/17301/ (nicht funktioniert)

Ich bin mit dem ADT-Bündel v22 (Eclipse 4.2.1), mit dem Android NDK R8e unter Ubuntu 12.10 verwenden.

csipsimple verwendet jni und swig, um den systemeigenen Code aufzurufen.

Ich bin verzweifelt, hilf mir!

+0

Does Eclipse-> Einstellungen> Android> NDK hat den richtigen Weg bekommen würde? – Slartibartfast

+0

Wir sehen dieses Problem auch, aber erst nach dem Wechsel zu NDK r9. – eodabash

Antwort

0

Verwenden Sie die Funktionen info, warn usw., um Nachrichten in einer Ihrer Android.mk-Dateien zu protokollieren? Wie $(info my-log-message) Es sieht aus wie Ihr tun und es ist die Protokollierung der Zeichenfolge:

Android NDK: Verwendet lokale Einstellungen

Wenn ja, entfernen sie alle und noch einmal versuchen.

8

Für NDK R9 (funktioniert auch in anderen, aber Zeile # abweichen können):

${NDK}/build/core/add-application.mk 
line 138 

add "#" am Anfang der Zeile.

# $(call __ndk_info,WARNING: APP_PLATFORM $(APP_PLATFORM) is larger than \ 
    android:minSdkVersion $(APP_MIN_PLATFORM_LEVEL) in $(APP_MANIFEST)) 

Ein Zeichen, 30 Sekunden fix ... gehen Debug nativen Code.

+3

Dies ruft die Anwendung zum Starten auf, aber es kann immer noch nicht gedebuggt werden (Trefferpunkte in C++ Code schlagen). Wir erhalten Ausgabe wie: "run-as: Paket 'com.our.app' ist unbekannt Überprüfen, ob die Anwendung mit NDK_DEBUG erstellt wurde = 1" – eodabash

+1

Lösung funktionierte, aber lesen Sie den obigen Kommentar, durch eodabash .. Anwendung wird nicht erhalten debugged .. –

+0

Hitpoints zu schlagen ist unabhängig von der obigen APP_PLATFORM-Warnung. Es gibt eine Reihe von Gründen, warum Haltepunkte nicht erreicht werden können.Versuchen Sie, manuell über die Befehlszeile mithilfe der Android-Tools zu erstellen. Zum Beispiel: 1) "ndk-build NDK_DEBUG = 1" ... 2) "ant debug" ... und 3) ndk-gdb --launch = com.ihr.app.activity ... um die App zu starten und zu verifizieren kann Haltepunkte setzen. Wenn ndk-gdb C++ nicht debuggen kann, wird Eclipse auch nicht. Manchmal hilft es auch, die App zuerst als Java-App auszuführen und anschließend erneut zu debuggen. – DevByStarlight

2

Nachdem sie diese, zu arbeiten und dann neu zu erstellen, meine app, um zu sehen, was funktioniert, habe ich folgendes gefunden:

im AndroidManifest.xml, haben Sie min/Ziel-SDK-Version einzustellen, dass anzupassen von deinem Telefon.

[[email protected]:anotherJniDebugTest]$ adb shell getprop|grep build.version 
[ro.build.version.codename]: [REL] 
[ro.build.version.incremental]: [5c6c6b0b1b] 
[ro.build.version.release]: [4.3.1] 
**[ro.build.version.sdk]: [18]** 

daher mein Manifest Versionen hatten 18 sein, wenn ich meine Version auf 17 eingestellt hatte, ich den obigen Fehler

Verwandte Themen