2013-06-09 14 views
15

Próbuję debugować natywny kod w aplikacji "csipsimple" na Androida, używając opcji Debug As->Android Native Application. Użyłem samouczka this, aby to zrobić. Wciąż otrzymuję te błędy:Debugowanie natywnego kodu w Androidzie pod zaćmieniem kończy się niepowodzeniem

[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 

Próbowałem

Unable to detect application ABI's when trying to debug NDK (nie ma znaczenia, nie używać Sequoya)

http://www.cocos2d-x.org/boards/6/topics/24216 (nie działa)

https://groups.google.com/forum/?fromgroups#!topic/android-ndk/icsQtRy1FZQ (pracował w tajemniczy sposób jeden raz)

http://www.mjbshaw.com/2012/11/android-ndk-eclipse-fixing-unknown.html (bez problemu)

http://en.it-usenet.org/thread/12874/17301/ (nie działa)

Używam V22 ADT Bundle (Eclipse 4.2.1), przy czym R 8e Android NDK, pod Ubuntu 12.10.

csipsimple używa jni i swig do wywołania natywnego kodu.

Jestem zrozpaczony, pomóż mi!

+0

Czy Eclipse> Preferencje> Android> NDK mieć właściwą drogę? – Slartibartfast

+0

Widzimy również ten problem, ale dopiero po przejściu na NDK r9. – eodabash

Odpowiedz

0

Czy używasz funkcji informacyjnych, ostrzegawczych itp. Do rejestrowania wiadomości w dowolnym pliku Android.mk? Jak $(info my-log-message) Wygląda swojej zrobienia i to zalogowaniu ciągu:

Android NDK: Używa lokalnych ustawień

Jeśli tak, usuń je wszystkie i spróbuj ponownie.

8

Dla NDK R9 (działa w innych też, ale linia # mogą się różnić):

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

Add "#" na początku linii.

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

Jedna postać, 30 sekundowa naprawa ... idź debugować natywny kod.

+3

To powoduje, że aplikacja uruchamia się, ale nadal nie może być debugowana (hit breakpoints w kodzie C++). Otrzymujemy wynik w postaci: "run-as: Package" com.our.app "jest nieznany Sprawdź, czy aplikacja została zbudowana przy użyciu NDK_DEBUG = 1" – eodabash

+1

rozwiązanie zadziałało, ale przeczytaj komentarz powyżej, przez eodabash .. Aplikacja nie otrzymuje debugowane .. –

+0

Uderzanie punktów przerwania nie ma związku z powyższym ostrzeżeniem APP_PLATFORM. Istnieje wiele przyczyn, dla których punkty przerwania nie mogą zostać trafione.Spróbuj budować ręcznie z wiersza poleceń za pomocą narzędzi Android. Na przykład: 1) "ndk-build NDK_DEBUG = 1" ... 2) "mrówka debug" ... i 3) ndk-gdb --launch = com.twoja.app.activity ... aby uruchomić aplikację i zweryfikować można ustawić punkty przerwania. Jeśli ndk-gdb nie może debugować C++, to Eclipse też nie. Czasami pomaga też uruchomić i debugować aplikację jako aplikację Java, a następnie uruchomić ją ponownie w celu debugowania rodzimego. – DevByStarlight

2

Po zdobyciu tej pracy, a następnie ponownego tworzenia moją aplikację, aby zobaczyć, co działa, znalazłem następujące:

w AndroidManifest.xml, trzeba ustawić wersję min/target SDK w celu dopasowania twojego telefonu.

[[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]** 

zatem, moi manifestują wersje musiały być 18. Gdybym moja wersja ustawiony na 17, chciałbym uzyskać powyższy błąd

Powiązane problemy