pour une version plus récente de NDK (je me sers R7C), vous pouvez construire la version de débogage par
- ajouter
android:debuggable="true"
drapeau <Application>
tag dans AndroidManifest.xml
- invoquer
ndk-build
avec NDK_DEBUG=1
(L'indicateur NDK_DEBUG n'est pas nécessaire si vous exécutez ndk-build avec un shell unix)
sous Windows, les choses deviennent un peu compliquées car pour utiliser ndk-gdb
, vous avez toujours besoin de bash (ou cygwin) à partir de NDK r7c, pourtant ndk-build
fonctionnant sous cygwin bash va rencontrer un problème d'autorisation si vous utilisez une bibliothèque statique pré-compilée
ma solution sur la machine windows est
- ajouter
android:debuggable="true"
drapeau <application
balise dans AndroidManifest.xml
(comme ci-dessus)
- cmd (commande fenêtre d'invite): INVOKE
ndk-build
avec NDK_DEBUG=1
- en bash Cygwin: run
ndk-gdb
pour enquête initiale rapide native si la bibliothèque, créer une activité simple avec un bouton pour déclencher la fonction d'entrée bibliothèque et loadLibrary
dans l'activité comme:
class MyActivity extends Activity {
static {
System.loadLibrary("mylibrary");
}
/* other functions like onCreate, etc... */
public native void libfunc();
public void onClick(View v){
libfunc();
}
}
Ainsi, lorsque gdb
commence, la bibliothèque en question est réellement chargée, mais vous pouvez toujours avoir le temps de définir des points d'arrêt, etc. avant que le programme se bloque; lorsque vous avez terminé la mise en place du débogueur, à (gdb)
invite, tapez continue
(ou tout simplement « c
»), puis appuyez sur le bouton pour démarrer le programme de plantage et le débogage heureux ...
agréable, mais je ne peux pas y accéder: ( – Noam
@ognian Votre compte avec le lien est suspendu ... lol Je ne voudrais pas connaître la réponse à cette question aussi, car j'ai suivi le lien asnwers et j'ai trouvé que la solution ne fonctionnait pas non plus. – JPM