AlleRun Shell Script-Datei auf Android Embedded-Gerät mit Systemfunktion in Android NDK
Hier will ich .Sh Datei per Systemaufruf in Android NDK laufen.
Ich kann cp,rm
Befehl über Systemaufruf ausführen. aber SH-Befehl funktioniert nicht über Systemaufruf.
Ich habe auch Busy-Box auf Android installiert.Ich benutze unten Code.Ich setze alle Erlaubnis auf test.sh
.
Code:
#include <stdlib.h>
#include <stdio.h>
#include <android/log.h>
#include <jni.h>
#define LOG_TAG "Demo"
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG,LOG_TAG,__VA_ARGS__)
void Java_com_ndkdemo_NDKdemoActivity_systemcall(JNIEnv * env, jobject obj) {
int result;
result = system("cp /mnt/sdcard/test /Download");
LOGD("result is cp %d", result);
result = system("sh ./test.sh");
LOGD("result of test.sh is %d", result);
}
Ausgang:
result is cp 0.
result of test.sh is 0.
Hier bin ich immer 0 in system("sh ./test.sh");
aber das test.sh
Skript nicht gestartet.
kann Ausgabe "Hi"
auf Konsole nicht ausgegeben werden.
test.sh enthält
#!/system/bin/
echo "Hi"
Wenn i auf schnellen Direktbefehl am Ausführung als seine Arbeits fein und seine gegebenen Ausgabe "Hi"
auf der Konsole.
Bitte helfen Sie mir, dieses Problem zu lösen.
Dank
auch, FYI: Ihre erste Zeile sollte auf das Skript zeigen, das Sie ausführen möchten, sollte also auf '#!/System/bin/sh' gesetzt werden. – Phil