Android Studio 3.0 failed mergeDebugResources - error: file not found

Android Studio 3.0 failed mergeDebugResources - error: file not found

我创建了一个空项目并添加了 appcompat-v7-26.1.0 支持。我收到很多这样的错误:

C:\Users\username.gradle\caches\transforms-1\files-1.1\appcompat-v7-26.1.0.aar\e0aabf040e64856c88683f1511ddf095\res\layout\tooltip.xml: error: file not found.

这导致:

Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details :app:mergeDebugResources FAILED

FAILURE: Build failed with an exception.

What went wrong: Execution failed for task ':app:mergeDebugResources'.

Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

我可以在gradle.properties文件by adding property中解决

android.enableAapt2=false

...但这是解决方法,而不是解决问题的方法。如果您查看这个丢失的文件路径,它似乎很长,所以我想知道路径长度是否可能是针对其他问题 发布的问题。不幸的是,我不知道如何更改它,因为大部分长度都在 gradle 目录中,所以即使我更改 GRADLE_USER_HOME 路径(在我的情况下为 C:\Users\username\.gradle)它也不是大利润。 我也试过设置

android.enableBuildCache=true # false didn't work as well
android.buildCacheDir =c:\temp\

但运气不好。在这种情况下,我将不胜感激。

这是我在 build.gradle 中所做的更改:

dependencies {
    classpath 'com.android.tools.build:gradle:0.4.3'
}

在这里发布:

https://issuetracker.google.com/issues/36972228

我有类似的问题。
将 gradle 运行时从 Gradle 4.4.1 更改为 Gradle 4.1 有帮助。
(依赖项没有变化,如果你使用 Jenkins 确保环境变量正确更新gradle --version

问题似乎是 gradle 在 C:\Users\username.gradle\caches 中查找缓存的 appcompat 库。我假设 username.gradle 不存在?还是打错了?

无论如何,我遇到了类似的问题,并指定 gradle 用户主目录修复了它。在我的例子中,gradle 正在查看 C:\Windows\System32\config\systemprofile 内部,但没有找到缓存,因为它不存在。

我为 GRADLE_USER_HOME 设置了一个环境变量,以便 gradle 可以将内容缓存在设定的位置。有关详细信息,请参阅 问题。