¿Cómo mostrar el logcat del emulador de Android en travis-ci?

Tengo un proyecto de Android en GitHub que usa Travis-ci para una continuous integration.

Las comstackciones actualmente fallan y necesito mostrar el logcat del emulador para encontrar más detalles sobre el problema que ocurre durante la compilation automatizada.

Traté de agregar ambos:

after_failure: - adb logcat after_script: - adb logcat 

Pero ambos commands nunca se ejecutan.

Tal vez esto se deba a las versiones del proyecto travis-ci java que ejecutan un mvn install antes de que se ejecute el script real y ambos commands no se ejecutan … Estoy realmente atascado. Cualquier ayuda sería apreciada.

Creo que ya no lo necesita, pero intentaré responder la pregunta.

Necesita agregar el --all contrario, estos packages no estaban disponibles.

Google desaprobó el -p --obsolete y solo los packages sugeridos (más nuevos) están disponibles sin -a --all flag.

Ver las herramientas de construcción faltantes – línea 56

  echo "y" | android update sdk --filter platform-tools,build-tools-17.0.0,android-16,extra-android-support,$ANDROID_SDKS --no-ui --force > /dev/null Error: Missing platform-tools Error: Missing platform-tools Error: Ignoring unknown package filter 'build-tools-17.0.0' 

En la actualidad, las últimas herramientas de plataforma se sugieren siempre sin --all flag but:

 $ ./android update sdk -u -t build-tools-17.0.0 Error: Ignoring unknown package filter 'build-tools-17.0.0' Warning: The package filter removed all packages. There is nothing to install. Please consider trying to update again without a package filter. $ ./android update sdk -a -u -t build-tools-17.0.0 Packages selected for install: - Android SDK Build-tools, revision 17 

Probablemente la falta de herramientas de compilation y la plataforma android-17 son la causa del file de properties no encontrado.

Y vi aquí un trabajo para travis-lint, no lo uso.


Este es el trabajo actual que uso para loggings, necesita mejorarse pero funciona, por -e , para emulador. Necesitas personalizar tu MOD_NAME .

 # adb -e: direct an adb command to the only running emulator. Return an error if more than one. before_script: # - echo 'LOGCAT' # Check logcat debug output: http://developer.android.com/tools/help/logcat.html # Check debugging log: http://developer.android.com/tools/debugging/debugging-log.html # Comment the lines belows to debug output and networkingirect it to a file. Custom tags for your app. - adb -e logcat *:W | tee logcat.log > /dev/null 2>&1 & after_failure: # - echo 'FAILURE' # Check apt configuration: http://docs.travis-ci.com/user/ci-environment/#apt-configuration # Comment out the lines below to show log about tests with app name customized on exports section. - sudo apt-get install -qq lynx - export MOD_NAME=yourappmodulename - export LOG_DIR=${TRAVIS_BUILD_DIR}/${MOD_NAME}/build/outputs/reports/androidTests/connected/ - lynx --dump ${LOG_DIR}com.android.builder.testing.ConnectedDevice.html > myConnectedDevice.log - lynx --dump ${LOG_DIR}com.android.builder.testing.html > myTesting.log - for file in *.log; do echo "$file"; echo "====================="; cat "$file"; done || true after_script: # Uncomment the line below to kill adb and show logcat output. - echo " LOGCAT "; echo "========"; cat logcat.log; pkill -KILL -f adb 

Estoy buscando una alternativa preinstalada a lynx porque sudo no está disponible usando una infraestructura basada en contenedores y cat es realmente para concatenar files, si alguien sabe para mejorarlo, gracias.

Después de algunos bashs adicionales, puedo get Logcat a través de cualquiera de los dos:

  #build 25 #run all tests - mvn clean install -DskipTests=false #build 26 - adb logcat & 

en la fase de antes de la installation de travis.

Paso el mvn install -DskipTests = true de Travis. Sin embargo, no pude get ninguna forma de get el logcat durante una compilation normal. Alguna idea ?