cri*_*007 4 java android gradle android-studio android-gradle-plugin
我正在开发一个Android应用程序,每次运行它时,我收到此消息:
:module:someTask FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':module:someTask'.
> some message here... finished with non-zero exit value X
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: Y.ZZ secs
Run Code Online (Sandbox Code Playgroud)
我已经尝试过清理和构建项目,但错误仍然存在.
我已经看到了启用Multidex或增加堆大小的答案,但我确信我不需要任何解决方案.
我该怎么做才能解决这个问题?
关于这个问题:这是什么是堆栈跟踪的直接扩展,我如何使用它来调试我的应用程序错误?除了您正在查看Gradle堆栈跟踪而不是Java堆栈跟踪.
该错误消息不足以诊断问题.有多种方法可以获得更多信息,应首先进行检查.
Gradle输出本身应指向该消息之上:module:someTask FAILED和最后一个消息之上的几行中的实际错误:module:someOtherTask.因此,如果您询问有关错误的问题,请编辑您的问题以包含错误的更多上下文.
该someTask部分app:someTask FAILED是非常,因为它会告诉你到底是哪的构建过程中的步骤已经崩溃重要.
这些步骤包括准备依赖项,生成和合并资产和资源文件,检查代码是否存在错误和编译,然后最终安装应用程序.
如果在构建过程的任何时刻Gradle检测到异常,它将抛出一个非零退出值,表示发生了错误.
退出值本身有点重要.
1 只是一般错误代码,错误可能在Gradle输出中2 似乎与重叠依赖项或项目配置错误有关.3 似乎是来自包含太多依赖项或内存问题.可能还有其他人,所以请随意提供您自己的意见或答案与其他价值观.
上述(在尝试清理和重建项目之后)的一般解决方案是:
1 - 解决上面提到的错误.通常,这是编译时错误,这意味着项目中的某些代码无效.这包括Android项目的XML和Java.有关进入应用程序的所有内容,请参阅图像2&3- 这里有很多答案告诉你启用multidex.虽然它可以解决问题,但它很可能是一种解决方法.如果您不明白为什么使用它(请参阅链接),您可能不需要它.如果您无法在Gradle日志中找到任何错误输出,那么建议的操作方法是打开Android Studio的Gradle窗口.
打开Tasks每个模块的文件夹,并执行以下某些组合.
build> clean后跟build> build. help> dependencies.确保没有重复. verification> lint.这将输出您可以在浏览器中阅读的HTML文件.Gradle日志会说Wrote HTML report to file:///path/to/app/build/outputs/lint-results.html,所以只需打开该文件即可查看所有错误和警告. install> installDebug.我刚刚安装Android Studio时看到很多帖子的值为2,但是有错误
'android-studio/jre/bin/java'以非零退出值2结束
安装Java JDK并正确配置Android Studio以使用JDK似乎可以解决此问题.
如果您使用的是谷歌播放服务的compile 'com.google.android.gms:play-services:X.Y.Z',那么只有包括你真正需要的依赖,否则你很可能是因为打Multidex限制.了解如何启用它.
如果您的Gradle文件中有一行读取compile fileTree(dir: 'libs', include: ['*.jar']),那么您不需要任何其他行,compile files('libs/some_file.jar')因为第一种方式是" 在目录中包含每个 JAR文件libs/".
除此之外,如果您正在使用Gradle并且能够通过搜索Maven存储库找到您想要使用的依赖项,那么强烈建议您使用它而不是手动将JAR文件放入libs/目录中.对于该站点上的每个库,都有一个Gradle选项卡,您只需要复制那一行并放入compile <line you copied>该dependencies部分.
如果你有一行编译另一个项目,比如compile project(":project_name"),那么请确保你没有从那里复制依赖项.
对于内存相关的问题的另一个解决方案包括扩大堆大小,这是从做build.gradle像这样
android {
// Other stuffs
dexOptions {
javaMaxHeapSize "2g" // or "4g" if your device has enough memory
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3530 次 |
| 最近记录: |