Android Studio: Falló la ejecución de Gradle. Causa: Tubo roto
Siempre que construyo / ejecuto mi proyecto de android en android-studio obtengo un cuadro de mensaje diciendo: Failed to complete Gradle execution.Cause: Broken pipe
y luego la versión antigua de la aplicación comienza a correr en mi dispositivo. Traté de limpiar el proyecto, pero recibo el mismo mensaje. He probado la solución aquí, pero no ayuda. También he intentado la solución aquí . Tengo la siguiente salida del gradlew compileDebug --stacktrace --info
:
Task 'compileDebug' is ambiguous in root project 'Wifi'. Candidates are: 'compileDebugAidl', 'compileDebugJava', 'compileDebugNdk', 'compileDebugRenderscript', 'compileDebugTestAidl', 'compileDebugTestJava', 'compileDebugTestNdk', 'compileDebugTestRenderscript'. * Try: Run gradlew tasks to get a list of available tasks. Run with --debug option to get more log output. * Exception is: org.gradle.execution.TaskSelectionException: Task 'compileDebug' is ambiguous in root project 'Wifi'. Candidates are: 'compileDebugAidl', 'compileDebugJava', 'compileDebugNdk', 'compileDebugRenderscript', 'compileDebugTestAidl', 'compileDebugTestJava', 'compileDebugTestNdk', 'compileDebugTestRenderscript'. at org.gradle.execution.TaskSelector.getSelection(TaskSelector.java:69)
Sigo recibiendo el mismo error. Alguien puede ayudarme porfavor?
- Establecer niveles de advertencia de estudio de Android
- Extraer datos de múltiples fragmentos desde un solo botón
- Advertencias / avisos de nullpointer de estudio de Android en la vista de código
- Advertencia de tiempo de ejecución de Kotlin desactualizada (plugin Kotlin 1.1.2-release-Studio2.3-3)
- Android Studio Gradle en el servidor
Editar:
Mi build.gradle
es como sigue:
apply plugin: 'com.android.application' android { compileSdkVersion 15 buildToolsVersion "20.0.0" defaultConfig { applicationId "com.example.pervysage.wifi" minSdkVersion 15 targetSdkVersion 15 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
- Suprimir potencial NullPointerException en Android Studio
- Android studio 2.3 no funciona
- Android studio 0.5.9: 2 molestas advertencias de Gradle
- ¿Dónde está la vista previa del diseño de Android Studio?
- (Android Studio) Sugerir nombres de variables sobre las clases externas en rápida completa?
- Utilizar el prefijo de Android en xml (android :, app :, @ .., ...)
- No se puede iniciar la actividad ComponentInfo ... java.lang.IllegalStateException: Ya conectado
- No se puede encontrar la clase de símbolo en Android Studio
He tenido un problema similar, pero noté que el problema se produjo cuando configuré mi computadora portátil Linux como un enrutador. El caso de uso aquí es que entonces la ruta de tráfico WiFi de mi teléfono a través de mi portátil y sniff HTTP solicitudes durante la depuración. Esto parecía confundir gradle y / o estudio de android.
Quitar los comandos iptables necesarios, killall -9 java y reiniciar android studio para que el problema se vaya.
Los comandos linux que causan el problema (estos y otros comandos similares causarán el problema):
-
iptables -t nat -A POSTROUTING -j MASQUERADE
-
echo 1 > /proc/sys/net/ipv4/ip_forward
En linux, simplemente hago lo siguiente:
-
iptables -t nat -F
-
echo 0 > /proc/sys/net/ipv4/ip_forward
Tenga en cuenta que la solución anterior puede estropear su firewall por lo que no juegue con estas cosas a menos que sepa lo que está haciendo.
Tuve el mismo problema con ADS en Fedora 20.
Todo funciona bien hasta que habilites MASQUERADING.
El problema es una regla de cortafuegos, que obliga a un SNAT (MASQUERADE) en la conexión tcp a localhost.
# iptables -L POST_public_allow -t nat -v Chain POST_public_allow (1 references) pkts bytes target prot opt in out source destination 73446 4498K MASQUERADE all -- !lo any anywhere anywhere
El daemin gradle, iniciado por ADS, acepta conexiones sólo desde 127.0.0.1 (dirección loopback). Pero la regla del cortafuegos fuerza el uso de la dirección pública de la interfaz. El daemon gradle rechaza la conexión y se produce el error "Broken pipe".
Hay dos soluciones para el problema:
1.) desactivar MASQUERADING en absoluto:
# sudo firewall-cmd --remove-masquerade
2.) fijar la regla nat:
# iptables -I POST_public_allow -t nat ! -i lo ! -o lo -j MASQUERADE
Para una tercera solución, vea el comentario # 2 en este hilo .
La única solución para mí es usar ipv6 en lugar de ipv4: en bin / studio.vmoptions o bin / studio64.vmoptions (dependiendo de si estás en 32 o 64 bits), cambia la línea -Djava.net.preferIPv4Stack = true by -Djava.net.preferIPv6Stack = true
Es un poco feo, pero no estropea ninguna configuración IPv4 existente.
Como no podía encontrar a nadie que tuviera el mismo problema incluso después de googlear, decidí aprender sobre lo que significa "Broken pipe". Después de leer aquí , sólo pensé que algún proceso en mi sistema debo morir. Acabo de reiniciar mi sistema y que arreglaron el problema. Todos los derechos reservados
Para aquellos que vienen aquí de Google para ver algunas actualizaciones, aquí es lo que pueden intentar hasta que se fija por el equipo de Gradle.
El problema es que el daemon Gradle está tratando de usar IPv4 en lugar de IPv6.
Solución 1: En Linux, ponga lo siguiente en su ~ / .profile o ~ / .bash_profile: export _JAVA_OPTIONS = "- Djava.net.preferIPv6Addresses = true"
Solución 2: en el archivo vmoptions de Android Studio, cambie la línea -Djava.net.preferIPv6Addresses = true a -Djava.net.preferIPv6Addresses = true
Ver detalles aquí en el sitio oficial: http://tools.android.com/knownissues#TOC-Mac-OS-X-Performance
- biblioteca de materiales de apoyo, no puede encontrar Cardview / Recycleview
- Hacer un botón semitransparente tal que el color del botón debe ser visible y el fondo debe ser visible