Android Studio每次运行前需要重新构建项目。

23

最近,Android Studio每次运行都会显示“Java无法找到符号”错误。我不得不在每次运行之前进行构建和重构项目。有没有办法修复它?我不知道是我的项目问题还是最新的Android Studio更新问题。有人遇到相同的问题吗?有什么方法可以解决?


1
我最近在Android Studio 3上遇到了这个问题。 - Mahdi
5个回答

17
请检查运行/调试配置。确保包含“Gradle-aware Make” 在此输入图片描述

非常感谢!对我来说非常有效 :) - VollNoob
谢谢,这个解决方案很完美。让我一天都充满了好心情。 - SAurabh
1
这应该是被接受的答案。适用于AS 3.4。 - Kunami
我该如何添加它? - c-an
它是做什么的? - c-an

6

这是一个已知的问题。也许你可以尝试以下方法:

我遇到了同样的问题,为了避免每次重建,我进入我的模块项目设置 -> 依赖项并上下移动我的库项目中的一个条目 -> 应用 -> 确定 -> 重新生成 R.java。

你也可以尝试在编译器设置中取消勾选“使用外部构建”:

文件 -> 设置(Ctrl+Alt+S) -> 编译器 -> 取消勾选“使用外部构建”


你的解决方案无法与Android Studio 3.2.1(外部构建)配合使用。 - maslick
我在Android Studio 3.5.3中找不到它。 - Islam Ahmed

1
在 Android Studio 版本 2+ 中,所有 Gradle 配置文件中都要使用此代码。
android{
..

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
        incremental = false;
}
...

}

如果您使用NDK进行实验,请按照以下步骤进行操作。
model {
    android.compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
        incremental false
    }
}

0

我不了解你2013年的问题,但在我的2016年(Android Studio 2.1.3)中,即时运行会强制Android Studio每次按“调试”按钮时从头开始重建项目。关闭它可以解决这个问题。


0
在我的情况下,我已经改变了sourceSets
android {
    sourceSets {
        main {
            res.srcDirs =
                    [
                            'src/main/res',
                            'src/main/res/layouts',
                            'src/main/res/layouts/content',
                            'src/main/res/layouts/layout',
                            'src/main/res/layouts/fragment',
                            'src/main/res/layouts/dialog',
                            'src/main/res/layouts/appbar',
                    ]
        }
    }
}

查找一些*.xml文件并将其放置在layouts/layout目录中...

最终我解决了问题,不要把文件放在layouts/layout目录中,所以我创建了一个activity目录,并将那些文件剪切到activity目录中,最后按照以下方式编辑gradle:

android {
    sourceSets {
        main {
            res.srcDirs =
                    [
                            'src/main/res',
                            'src/main/res/layouts',
                            'src/main/res/layouts/activity',
                            'src/main/res/layouts/content',
                            'src/main/res/layouts/layout',
                            'src/main/res/layouts/fragment',
                            'src/main/res/layouts/dialog',
                            'src/main/res/layouts/appbar',
                    ]
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接