当前位置: 首页 > 知识库问答 >
问题:

Android Studio:Gradle执行失败。原因:水管破裂

万俟靖
2023-03-14

每当我在android studio中构建/运行我的android项目时,我都会收到一个消息框,上面写着:未能完成Gradle执行。原因:管道破裂,然后旧版本的应用程序开始在我的设备上运行。我试图清理这个项目,但我得到了同样的信息。我在这里尝试了这个解决方案,但没用。我也在这里尝试了解决方案。我得到了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)

我一直收到同样的错误。有人能帮忙吗?

编辑:

我的构建。gradle如下所示:

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'])
}

共有3个答案

邵星河
2023-03-14

有关第三种解决方案,请参阅本帖中的注释#2。

我唯一的解决办法是在bin/studio中使用ipv6而不是ipv4:。vmoptions或bin/studio64。vmoptions(取决于您是32位还是64位),更改ligne-Djava。网preferIPv4Stack=true by-Djava。网preferIPv6Stack=true

这有点难看,但它不会破坏任何现有的IPv4配置。

聂琨
2023-03-14

我对Fedora 20的广告也有同样的问题。

一切正常,直到您启用MASQUERADING。

问题在于防火墙规则,它强制tcp连接到本地主机时使用SNAT(伪装)。

# 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  

由ADS启动的gradle daemin只接受来自127.0.0.1(环回地址)的连接。但是防火墙规则强制使用公共接口地址。gradle守护进程拒绝连接,并出现“断管”错误。

有两种解决方案

1.)完全禁用MASQUERADING:

# sudo firewall-cmd --remove-masquerade

2.)修正nat规则:

# iptables -I POST_public_allow -t nat ! -i lo ! -o lo -j MASQUERADE
幸鸿轩
2023-03-14

我也遇到过类似的问题,但在将Linux笔记本电脑配置为路由器时注意到了这个问题。这里的用例是,我会通过笔记本电脑路由手机的WiFi流量,并在调试时嗅探HTTP请求。这似乎让gradle和/或android studio感到困惑。

删除必要的iptables命令,killall-9java,重新启动android studio,让问题消失。

导致问题的linux命令(这些和其他类似的命令会导致问题):

  1. iptables-t nat-A POSTROUTING-j MASQUERADE
  2. 回声1

在linux上,我只需执行以下操作:

  1. iptables-t nat-F
  2. echo 0

请记住,上面的解决方案可能会破坏你的防火墙,所以除非你知道自己在做什么,否则不要玩这些东西。

 类似资料:
  • 我已经在我的电脑上安装了Android Studio。当我试图安装cordova到我的电脑,它返回以下错误信息。有人能在这个问题上提供帮助而不重新安装Android SDK吗? npm安装-g cordova cordova创建MyApp

  • 无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:在项目gameoflife上编译(default-compile)-core:编译失败[错误]此环境中未提供编译器。也许您运行的是JRE而不是JDK? 我已经在我的机器上安装了Java,但仍然面临这个问题。 我在做EC2。

  • 找了很久,发现是缺少jar包引入……   网上的一些解决方法,总结下来是这样的:   1、检查是否引入了相关的依赖;   2、检查是否在启动类上添加了@EnableAutoConfiguration或@SpringBootApplication注解;   3、检查是否在配置文件中添加了相关的配置;

  • 问题内容: 由于当前在Spring中对Hibernate 4的支持不足,我不得不将Hibernate从版本4降级到版本3(具体来说是3.3.2GA),现在该项目在尝试使用hbm2ddl生成架构时无法构建。这个错误太模糊了,谷歌并没有带来太多收益。 这是我的pom.xml: 跑步 失败于 完整的堆栈跟踪为: 希望有人可以对此有所启发! 问题答案: 在尝试使havennate模型使maven引导数据库

  • 我使用的是Cassnadra 2.1.13单节点集群和数据库运行良好,没有任何问题。 在单个节点集群中,出现这些异常的原因是什么,特别是同步失败,有什么提示或指针可以找到这个问题的根本原因吗? 错误[MemtableFlushWriter:21]StorageService.java:453-停止gossiper警告[MemtableFlushWriter:21]StorageService.ja

  • 我试图使用JsonSlurper从不同的文件输入变量。但它在第二次执行时失败了。有人能帮帮我吗? 从步骤 主要的棒极了 Java全球设置。json 詹金斯档案 错误记录