GENiALi
Fortgeschrittenes Mitglied
- 11
Hallo
Ich versuche ein App fertig zu stellen wo mir nur noch ein kleines Teil fehlt. Aber daran beisse ich mir die Zähne aus da ich eigentlich keinen schimmer von NDK und C habe. Das C Projekt, was ich eingebunden habe, ist ein OS Projekt und funktioniert auch soweit unter Android. Ich möchte mir nur noch eine zusätzliche Funktion einbauen. Aber da beisse ich mir die Zähne aus.
Also, hier mal ein bischen Code.
Das C Projekt erstellt ein Applog das es an den stdout ausgibt. Diese Infos will ich in der App auch nutzen. In C sieht das so aus.
last_log ist von mir und soll die Meldung fmt aufnehmen. Im Code wird die wie folgt aufgerufen.
Dann mache ich eine Methode oder Funktion die mir last_log zurückgeben soll.
Jetzt gibt es noch eine native.c die mir die Methoden für Android zugänglich macht. Die sieht bei mir so aus.
Solche Methoden habe ich noch einige, die auch funktionieren. Nur eben diese nicht.
Im Android sieht es dann in etwa wie folgt aus.
App wird dann angehalten. Aber im logcat finde ich keine für mich verständliche Hinweise. Was ist der Fehler? Ich denke da stimmt was in C nicht. Wäre dankbar für einen Hinweis.
Ich versuche ein App fertig zu stellen wo mir nur noch ein kleines Teil fehlt. Aber daran beisse ich mir die Zähne aus da ich eigentlich keinen schimmer von NDK und C habe. Das C Projekt, was ich eingebunden habe, ist ein OS Projekt und funktioniert auch soweit unter Android. Ich möchte mir nur noch eine zusätzliche Funktion einbauen. Aber da beisse ich mir die Zähne aus.
Also, hier mal ein bischen Code.
Das C Projekt erstellt ein Applog das es an den stdout ausgibt. Diese Infos will ich in der App auch nutzen. In C sieht das so aus.
Code:
static char *last_log = "";
void applog(int prio, const char *fmt, ...)
{
va_list ap;
last_log = fmt;
va_start(ap, fmt);
....
Code:
applog(LOG_ERR, "thread %d create failed", i);
Code:
char *get_last_message()
{
return last_log;
}
Code:
jchar Java_ch_geniali_Test_Service_getLastMessage(JNIEnv * env, jobject this){
return get_last_message();
}
Im Android sieht es dann in etwa wie folgt aus.
Code:
private native String getLastMessage();
......
String message = getLastMessage(); //Das will nicht