Android Studio:编译器错误输出窗口在哪里?


310

当我在Android Studio中“运行”项目时,在“消息”窗口中,我得到:

Gradle: 
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':play01:compileDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

它说,> Compilation failed; see the compiler error output for details. 那么“编译器错误输出”在哪里?和/或如何使用--stacktrace选项运行?


2
我运行的是Android Studio 1.3.2,但没有解决方案。
米兰Babuškov16年

6
sucki android studio要求应对此类愚蠢的问题.. :)
Siddharth

也许是IDEA理想地隐藏错误(SCNR)的想法
bebbo

更新插件时,我也遇到同样的问题。我使用Android Studio 3.4 Canary 6
Saurabh Gaddelpalliwar '18

我也遇到了这个问题。就我而言,问题出在实体类数据上。如果您的数据成员是私有的,则他们必须创建getter和setter方法。由于这种方法,其他绑定问题也随之而来。
Sumit Kumar

Answers:


63

这个答案已经过时了。对于Android 3.1 Studio,请转到此答案

您可以做的一件事就是停用外部构建。为此,请在出现错误时在“消息制作”面板中单击“编译器设置图标”。您也可以通过转到文件->设置->编译器来打开编译器设置。(感谢@maxgalbu提供此技巧)。

在此处输入图片说明

取消选中“使用外部版本”

在此处输入图片说明

您将在控制台中看到错误

编辑:再次返回到“内部版本”后,您可能会得到一些错误,可以通过以下方式解决它们:Android Studio:禁用“外部版本”以显示错误输出创建重复的类错误


当我尝试构建项目时,取消选中“使用外部构建”会导致两个错误:error: duplicate class: com.moberg.colorgame.BuildConfigerror: duplicate class: com.moberg.colorgame.R
Moberg 2013年

3
:@Moberg这里同样的问题,我开始了新的问题stackoverflow.com/questions/17108393/...
Waza_Be

好的,我将看看会发生什么,如果发现新问题,请回答新问题。
豪尔赫·富恩特斯·冈萨雷斯

7
我没有“消息制作”面板... wtf?
maxgalbu

9
我现在看不到这些选项。我正在运行Android Studio 1.2.1.1
Andrew S

563

对于Android Studio 3.1,请在“构建”窗口中选择“构建一个”下方的图标。

Android Studio 3.1原始日志切换按钮

在Android Studio 3.3(可能在3.2.1中)中,图标已更改,尽管位置相同:

Android Studio 3.3原始日志切换按钮

当您运行构建操作(例如,从“构建”菜单)时,构建窗口应打开。如果看不到它,可以尝试沿着窗口底部的“生成”按钮(在上面的屏幕快照中也可以看到),或者通过菜单查看→工具窗口→生成。


很高兴看到有这么多人投票赞成这个答案,而Android Studio 3.1仍处于
beta3

16
这是什么图标,我似乎找不到它,也找不到构建窗口
Sam

7
可悲的是,我不得不谷歌搜索并通过stackoverflow来了解如何查看编译器的输出。谢谢@boiledwater
spartygw

1
@shikharbansal,以防图像链接再次中断,该图标位于构建窗口的左边缘。它看起来像一个列表视图,以斜杠与“ ab”分开。
最高

4
Android的IDE仅说“切换视图” ..切换视图是什么?为此答案+1。Google仍在尽最大努力为开发人员遮盖工作流程
AngryITguy

39

设置非常简单!只需转到Android Studio 2.2.3 的“ 编译器”设置,然后设置以下--stacktrace命令:

编译器设置以添加--stacktrace命令

然后再次运行该应用程序


5
如果像您说的那样非常简单,那么该线程将不存在。
jungledev

1
@jungledev设置起来真的很简单,但是知道它并不是太明显了:)在我的答案中更改措辞以使这一点很清楚
Antonio

1
在AS 4.0中,我设置了--stacktrace。但是输出在哪里?那是最初的问题。
史蒂夫·怀特

构建时在控制台的输出中@SteveWhite。
安东尼奥

32

您在Windows上吗?启动cmd,找到您的项目文件夹并运行“ gradlew build”。这应该已经比IDE提供了更多的输出,您还可以在其中使用--info,-stacktrace和--debug。


10
美丽!现在,如果只能将输出集成到Android Studio中
那么ChaseTheSun 2013年

4
我的想法完全正确。没有用于编译器错误的窗口的IDE?我敢打赌我们遗漏了一些东西,但是在解决该问题之前,此解决方法应该足够了。
哈迪·科卡巴斯

4
“你在窗户上吗?” -这也可以在Ubuntu Linux下使用!谢谢!/[folder-where-you-installed-the-android-studio]/sdk/tools/templates/gradle/wrapper/gradlew build
geekQ

我正在将一个庞大的项目从Eclipse迁移到Android Studio。到目前为止最好的建议:首先使命令行gradle构建生效,然后再担心新的IDE。
杰里·布雷迪

18

您还可以通过单击切换按钮在“构建”窗口中看到错误。

在此处输入图片说明


15

就我而言,我更喜欢打开左下角Terminal窗口,然后运行gradlew build --info

在此处输入图片说明


5
@Pamblam Use ./gradlew
Rhys

1
这是我在此页面上找到的唯一在AS 4.0中有效的答案
Steve White


6

我正在建立Jorge的建议。转到文件->设置->编译器。

在这里,您将看到一个字段,可在其中插入--stacktrace来添加编译器选项


我在AS 4.0中尝试过。我不知道要寻找它可能产生的任何输出。
史蒂夫·怀特

2

gradlew --stacktrace 

在终端上查看完整的报告

对我来说

任务:app:compileDebugJavaWithJavac FAILED javac任务:源版本1.8需要目标版本1.8

所以我加了

 compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

在app.gradle文件/ android中,构建成功完成


当我在终端中(在项目文件夹中)执行此操作时,它会显示BUILD SUCCESSFUL,但是当我使用Build-> Make Project进行构建时,我会看到同样的提示,即存在编译错误。
史蒂夫·怀特

1

就我而言,我有一个findViewById引用到我在xml中删除的视图

如果您运行的是AS 3.1及更高版本:

  1. 转到“设置”>“构建,执行和部署”>“编译器”
  2. 将--stacktrace添加到命令行选项,单击“应用”,然后单击“确定”。
  3. 在AS的底部,单击Console / Build(如果使用稳定版3.1.2及更高版本),则展开面板并再次运行您的应用程序。

您应该在展开的视图中看到完整的stacktrace和特定的错误。


这是AS 4.0。它仍然以相同的方式失败。没有堆栈跟踪。
史蒂夫·怀特

是否添加了--stacktrack --debug --info标志?
Peterstev Uremgba

当然。但这不是问题。问题(据我所知)不再有出现堆栈跟踪的窗口。但是,可以在终端中手动运行gradlew以获得信息。在此页面的另一条评论中,我说过哪种方法有效。
史蒂夫·怀特

0

如果您使用的是Android Studio 3.1,请验证文件->项目结构->源兼容性是否为空。它不应设置为1.8。

然后按确定,项目将同步并且错误将消失。


问题不是如何使错误消失。问题是如何查看错误消息。
史蒂夫·怀特

0

将android转换为androidx之后。

更改导入库问题将解决。像这样:

import androidx.appcompat.widget.Toolbar;  <<  like this

导入androidx.annotation.NonNull; <<这样

导入androidx.appcompat.app.ActionBarDrawerToggle; <<这样

导入androidx.drawerlayout.widget.DrawerLayout; <<这样

导入androidx.recyclerview.widget.RecyclerView; <<这样

导入androidx.appcompat.app.AppCompatActivity; <<这样


这没有解决OP的问题:如何查看编译错误。
史蒂夫·怀特

-2

我解决了此错误“编译未能查看编译器错误输出以获取详细信息”

解决方案非常简单:在一行代码下面添加Gradle

实施'com.google.android.gms:play-services-ads:15.0.0'


应该在哪里添加代码行?你能改一下吗?
口琴

这不能回答原始问题:如何查看编译器错误消息。
史蒂夫·怀特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.