错误:执行任务“:app:processDebugResources”失败。> java.io.IOException:在Android Studio中无法删除文件夹“”。

77

我正在尝试使用Android Studio开发一个Android应用程序,因此我创建了一个Android应用程序并想要发布它。每当我点击“构建项目”以获取apk文件时,就会出现以下错误:

Error:Execution failed for task ':app:processDebugResources'.
> java.io.IOException: Could not delete folder C:\Users\ehsan\AndroidStudioProjects\MyApplication3\app\build\generated\source\r\debug\com\example\ehsan

显示错误消息的屏幕截图

Build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.example.ehsan.myapplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.0'
}

请粘贴您的Gradle文件。 - cgr
@cgr 是构建还是设置? - Ehsan Akbar
粘贴构建 Gradle。 - cgr
2
嗨,执行此代码根项目 gradlew --stacktrace。可能会有所帮助。 - Ahmad Aghazadeh
尝试使用此链接 https://dev59.com/f1UK5IYBdhLWcg3wsBtO#51568314。问题的终身解决方案。 - sushildlh
我发现这个解决方案对我很有用回答->任务:react-native-maps:compileDebugRenderscript FAILED - Deepak Kumrawat
26个回答

180

REACT NATIVE

从你的React Native文件夹中运行:

cd android && gradlew clean

然后

cd .. && react-native run-android

注:

对于 Mac,可能需要将 gradlew 改为 ./gradlew

对于命令提示符,可能需要将 && 改为 &

对于 PowerShell,可能需要将 && 改为 ; 并将 gradlew 改为 .\gradlew.bat

每个命令也可以单独运行,例如:先运行 cd android,再运行 gradlew clean,然后运行 cd ..,最后运行 react-native run-android


5
清除操作无法正常工作,但是先执行 cd android 然后再执行 gradlew clean 就可以完美地运行了!谢谢! - Ryan Pergent
这个可以运行,但会使构建过程变得更慢...希望有一种方法可以解决根本问题! - Venryx
终于找到了一种似乎能解决根本问题的方法!https://github.com/facebook/react-native/issues/9136#issuecomment-306131670 - Venryx
请注意,对于 Windows 系统,您需要使用 gradlew.bat - MickRip
在Windows中,gradlew.bat clean对我有用,但最近这个问题多次发生,我不知道原因是什么! - MojtabaRezaeimehr

91

我猜测目标生成目录中的某些文件正在您使用的另一个工具中打开。只需在要清理的文件夹中打开文件句柄即可。构建任务“clean”希望删除生成目录(通常为“target”)中的所有文件,但如果失败,则构建将失败。


14
我只是删除了文件夹,然后重新构建。 - Ehsan Akbar
1
嗨..我应该删除哪个文件夹? - kurniawan26
8
如果在使用 React Native,那么在项目文件夹中会有一个 android 文件夹,在那里移除 build 文件夹 - 至少对我来说是这样有效的。 - FirstOne
@Henning Luther,有没有其他解决方案?因为我的项目很大,每次清理和构建需要25分钟。 - Rose
1
@Rose 尝试将您的项目拆分为较小的模块,这样不是所有内容都需要重新构建,只需更改模块即可。 - Henning Luther
显示剩余2条评论

21

只需清理您的项目,这对我有效。

Gradle 的 Clean 任务会起作用。


正如你在问题中所看到的那样,清理操作并没有起作用,当然,稍后进行一次清理可以解决这个问题,因为文件句柄已经被操作系统关闭了。 - Henning Luther
3
如@robertmylne所提到的,更好的解决方案是运行以下命令:cd android && ./gradlew clean - Hesham Yassin

9

使用以下命令解决此问题

在Windows平台上

cd android && gradlew clean && cd..

在Mac平台上

cd android && ./gradlew clean && cd ..

(说明:该指令为清除Android项目的编译缓存,需要在终端中执行。)

5

在我的情况下,问题出在权限上。如果你以管理员身份(或使用sudo)打开Android Studio,然后以普通用户身份再次打开项目时,Android Studio可能无法删除某些文件,因为当你以管理员身份打开项目时,某些项目文件的权限已被更改。如果你遇到这些步骤,我认为你应该从版本控制系统(Git、TFS、SVN等)中再次克隆项目。否则,你必须配置项目文件/文件夹权限。


5

修复非常简单:只需按照以下说明操作

  1. 首先,保存项目
  2. 点击项目文件夹
  3. 单击菜单栏中的同步按钮(位于文件菜单选项下方的第三个图标)
  4. 清理项目并运行

5

正如其他人已经说过的那样,您需要清理项目,清理项目的步骤如下:

构建 -> 清理项目 或 构建 -> 重建项目


这对我有用,但我还必须在Windows资源管理器中删除(空的)“build”文件夹,因为AS似乎无法处理。然后清理工作正常。 - Hamish_Fernsby

2
如果您由于使用sudo命令打开Android Studio而遇到这些错误,则解决方法是为项目文件夹设置权限。运行以下命令。
sudo chmod -R 777 your_project_folder

清理并重新构建您的Android项目。


2

我在这篇文章中发现了另一个方便的解决方法,它避免了反复重建所有组件的问题:

http://bitstopixels.blogspot.ca/2017/04/react-native-windows-10-eperm-operation.html
  1. 执行 react-native run-android
  2. 一旦 React Packager 窗口打开,立即关闭它
  3. 等待 react-native run-android 完成并显示 BUILD SUCCESSFUL 消息。 (应用程序将会启动一个红色错误屏幕,抱怨连接服务器失败。不要惊慌。)
  4. 然后运行 react-native start 来启动 React Packager,这是上一步错误信息中指示的服务器
  5. 在模拟器或设备中重新加载应用程序(按两次 R 键)

2

我遇到了同样的问题。当我清理项目并重新构建后,一切都正常工作。

构建 -> 清理项目


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