2013-06-09 19 views
15

Sto cercando di eseguire il debug del codice nativo nell'app Android "csipsimple" utilizzando l'opzione Debug As->Android Native Application. Ho usato il tutorial this per farlo. Continuo a ricevere questi errori:Impossibile eseguire il debug del codice nativo in Android in eclissi

[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 

ho provato

Unable to detect application ABI's when trying to debug NDK (non rilevante, non ho usato Sequoya),

http://www.cocos2d-x.org/boards/6/topics/24216 (non ha funzionato)

https://groups.google.com/forum/?fromgroups#!topic/android-ndk/icsQtRy1FZQ (lavorato misteriosamente una sola volta)

http://www.mjbshaw.com/2012/11/android-ndk-eclipse-fixing-unknown.html (non il problema)

http://en.it-usenet.org/thread/12874/17301/ (non ha funzionato)

Sto utilizzando il V22 ADT fascio (Eclipse 4.2.1), con il r8e NDK Android, sotto Ubuntu 12.10.

csipsimple utilizza jni e swig per chiamare il codice nativo.

Sono disperata, aiutami!

+0

fa Eclipse> Preferenze> Android> NDK hanno la strada giusta? – Slartibartfast

+0

Stiamo riscontrando anche questo problema, ma solo dopo il passaggio a NDK r9. – eodabash

risposta

0

Utilizzate le informazioni, avvertite, ecc. Per registrare i messaggi in uno qualsiasi dei vostri file Android.mk? Come $(info my-log-message) Sembra che il fai ed è la registrazione della stringa:

Android NDK: Utilizza le impostazioni locali

Se è così, rimuovere tutti e riprovare.

8

Per NDK R9 (lavora in altri troppo ma la linea # possono essere diversi):

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

add "#" all'inizio della riga.

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

Un carattere, correzione di 30 secondi ... vai codice nativo di debug.

+3

In questo modo l'applicazione viene avviata, ma non può ancora essere sottoposta a debug (risultati dei punti di interruzione nel codice C++). Otteniamo output come: "run-as: Package 'com.our.app' è sconosciuto Verificare se l'applicazione è stata compilata con NDK_DEBUG = 1" Soluzione – eodabash

+1

funzionante, ma leggere il commento sopra, da eodabash .. L'applicazione non ottiene debugged .. –

+0

L'individuazione dei punti di interruzione non è correlata all'AVVERTENZA APP_PLATFORM precedente. Ci sono un numero qualsiasi di ragioni per cui i punti di interruzione non possono essere colpiti.Prova a creare manualmente dalla riga di comando utilizzando gli strumenti Android. Ad esempio: 1) "ndk-build NDK_DEBUG = 1" ... 2) "ant debug" ... e 3) ndk-gdb --launch = com.your.app.activity ... per avviare l'app e verificare può impostare i punti di interruzione. Se ndk-gdb non può eseguire il debug di C++, Eclipse non lo farà. Inoltre, a volte aiuta a eseguire e eseguire il debug dell'applicazione prima come app java e quindi eseguirla nuovamente per debuggging nativo. – DevByStarlight

2

Dopo aver ottenuto questo al lavoro, e poi ri-creare la mia app per vedere cosa funziona, ho trovato il seguente:

nel AndroidManifest.xml, è necessario impostare la versione di min/target SDK in modo che corrisponda del tuo telefono.

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

pertanto, le mie versioni manifesto doveva essere 18. Se ho avuto la mia versione impostata su 17, vorrei ottenere l'errore di cui sopra