Ejecutar un comando shell a través de QProcess en la plataforma Android

No puedo ejecutar ningún comando a través de QProcess en la plataforma Android. Estoy utilizando la biblioteca Qt. ¿Puede alguien explicar cómo ejecutar comandos shell desde mi aplicación en la plataforma Android?

QProcess process(); process.execute("ls"); bool finished = process.waitForFinished(-1); qDebug() << "End : " << finished << " Output : " << process.errorString(); 

El proceso no finaliza si no especifico el tiempo de espera. Process.waitForFinished () devuelve false cuando se especifica timeout digamos 10000 ms.

Su código de ejemplo es defectuoso y no funcionará en CUALQUIER plataforma! ls comando de ls no es un exactable! Este comando se crea en un programa shell, por ejemplo bash .

Otro error en tu código es que QProcess::execute es una función estática . Así que la línea final no tiene impacto en el proceso que ha intentado iniciar.

Así que su código debe verse así:

 QProcess process; process.start("bash", QStringList() << "-c" << "ls"); bool finished = process.waitForFinished(-1); 

Está utilizando QProcess::execute() que es una función estática. Citando la documentación de Qt : " Inicia el comando del programa en un nuevo proceso, espera a que termine ".

Así que lo que podría suceder en su código es:

 QProcess process(); process.execute("ls"); // Start "ls" and wait for it to finish // "ls" has finished bool finished = process.waitForFinished(-1); // Wait for the process to finish, but there is no process and you could get locked here forever... 

Hay 2 maneras de arreglar su código:

 QProcess process(); process.start("ls"); // Start "ls" and returns bool finished = process.waitForFinished(-1); qDebug() << "End : " << finished << " Output : " << process.errorString(); 

o

  QProcess::execute("ls"); 
  • Cómo importar bibliotecas compartidas en Cmake para Android
  • ¿Cómo construir el complemento de MySQL para Qt android?
  • Actividad de Android / Intención vs. Qt Signal / Slot vs. iPhone? /?
  • Qt: Cómo configurar el icono de la aplicación en Android e iOS
  • ¿Cómo especificar bibliotecas sólo para plataforma Android construir en el archivo .pro?
  • ¿Cómo mantener la pantalla encendida en Qt para Android?
  • Qt Android: ¿Por qué se crea QtApp-debug.apk para una versión de Release?
  • Comunicación Bluetooth con Qt 5.2 en Android
  • Depuración de la aplicación android en el destino en QtCreator
  • Biblioteca multiplataforma para comunicaciones entre C ++ y código nativo de plataforma (iOS, Android)
  • Android NDK: ¿Por qué desapareció arm-linux-androideabi-gdb.exe?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.