I Android-SDK-Paket für Linux und Android NDK. ADT wurde installiert, ich habe CDT installiert.Debugging Android NDK C/C++ Code in Eclipse - Stützpunkte sind nicht getroffen
habe ich ein Android-Projekt und fügte hinzu, native Unterstützung (JNI). Dann schrieb ich native Funktion in Java-Code, die in C++ - Code exportiert. In C++ Code habe ich diese Funktion definiert.
Java-Code:
static {
System.loadLibrary("test");
}
private native String get_text_from_cpp();
C++ Code (h):
extern "C"{
JNIEXPORT jstring JNICALL Java_com_example_test_MainActivity_get_1text_1from_1cpp(JNIEnv *, jobject);
}
C++ Code (CPP):
JNIEXPORT jstring JNICALL Java_com_example_test_MainActivity_get_1text_1from_1cpp(JNIEnv * env, jobject){
return env->NewStringUTF("hello from C++");
}
-Code funktioniert ohne Fehler. Aber wenn ich den Haltepunkt in C++ Code setze, wird es nicht getroffen.
build-NKD NDK_DEBUG = 1 - enthalten sind
Ich folgte dieser Anleitung http://tools.android.com/recent/usingthendkplugin
Android.mk in jni/LOCAL_CFLAGS hat: = -g
Ich habe sehr viele Informationen lesen, aber ich Eclipse konnte nicht angepasst werden. Bitte, hilf irgendjemandem.
PS: Ich bin für mein Englisch leider ist nicht meine Muttersprache. Ich habe Schwierigkeiten beim Schreiben.
Anzahl: Auch während debug in der Konsole zeigt: „Warnung:. Konnte nicht gemeinsam genutzte Bibliothek Symbole für 95 Bibliotheken laden, die/system/bin/Linker Verwenden Sie die "info sharedlibrary" Befehl, um die vollständige Liste sehen . Benötigen Sie "set solib-search-path" oder "set sysroot"? Warnung: Dynamische Linker-Breakpoint-Funktion kann nicht gefunden werden. GDB wird möglicherweise erneut versuchen. Inzwischen ist es wahrscheinlich , dass GDB Debugging freigegebener Bibliotheksinitialisierungen nicht möglich ist oder auflösende Breakpoints nach dlopen() auflösen. "
Vielleicht haben Sie Debug ausgeführt, der den Java-Debugger startet? Sie sollten mit der rechten Maustaste auf das Projekt und wählen Sie "Debug als" -> "android native Anwendung" –
Ja, ich wählte "debug as" -> "android native Anwendung". In "Debugkonfigurationen" wurde eine neue Konfiguration hinzugefügt (in "Android Native Application") http://gyazo.com/567ae4fa0e8aa2363676789b7df780be – newman
Vielleicht führt Ihre App die JNI-Funktion sehr früh aus, so dass der Debugger noch nicht fertig ist? Aus dem Code, den Sie gepostet haben, ist nicht ersichtlich, wo die native Methode aufgerufen wird.Ich würde eine Schaltfläche in Ihrer Aktivität vorschlagen, die die native Methode startet. Dann haben Sie die Möglichkeit, es mehrmals zu versuchen. –