android - Android Studio 构建失败:Android 资源链接失败,未能创建目录 C:\tmp\
问题描述
我从 Udacity 开发 Android 应用程序课程中打开了第一个练习项目,但它不会开始 - 构建失败并显示:
Android resource linking failed
Output: W/ResourceType(10956): For resource 0x0101053d, entry index(1341) is beyond type entryCount(1329)
W/ResourceType(10956): For resource 0x0101053e, entry index(1342) is beyond type entryCount(1329)
W/ResourceType(10956): For resource 0x0101053b, entry index(1339) is beyond type entryCount(1329)
W/ResourceType(10956): For resource 0x0101053c, entry index(1340) is beyond type entryCount(1329)
error: failed to create directory 'C:\tmp\T01.01-Exercise-CreateLayout\app\generated\not_namespaced_r_class_sources\debug\processDebugResources\r\com\example\android\favoritetoys'.
Command: C:\Users\anonymous\.gradle\caches\transforms-1\files-1.1\aapt2-3.2.1-4818971-windows.jar\ab73a7122ce318e598c11600c6ce167a\aapt2-3.2.1-4818971-windows\aapt2.exe link -I\
C:\Users\anonymous\AppData\Local\Android\Sdk\platforms\android-25\android.jar\
--manifest\
C:\tmp\T01.01-Exercise-CreateLayout\app\intermediates\merged_manifests\debug\processDebugManifest\merged\AndroidManifest.xml\
-o\
C:\tmp\T01.01-Exercise-CreateLayout\app\intermediates\processed_res\debug\processDebugResources\out\resources-debug.ap_\
-R\
@C:\tmp\T01.01-Exercise-CreateLayout\app\intermediates\incremental\processDebugResources\resources-list-for-resources-debug.ap_.txt\
--auto-add-overlay\
--java\
C:\tmp\T01.01-Exercise-CreateLayout\app\generated\not_namespaced_r_class_sources\debug\processDebugResources\r\
--custom-package\
com.example.android.favoritetoys\
-0\
apk\
--output-text-symbols\
C:\tmp\T01.01-Exercise-CreateLayout\app\intermediates\symbols\debug\R.txt\
--no-version-vectors
Daemon: AAPT2 aapt2-3.2.1-4818971-windows Daemon #0
重新安装 SDK 无济于事,无效缓存/重启选项也无济于事。
应用程序版本:Android Studio 3.4.1 Build #AI-183.6156.11.34.5522156,于 2019 年 5 月 1 日构建 JRE:1.8.0_152-release-1343-b01 amd64 JVM:JetBrains sro Windows 10 10.0 的 OpenJDK 64 位服务器 VM
解决方案
根据 HasanElHefnawy 在课程 github 上的评论:
更新 gradle 版本后会出现此问题。在这种情况下,必须删除 build.gradle 顶级项目文件中的以下代码行。只有旧的 gradle 版本才需要它们。
所以解决方案只是简单地从build.gradle文件中删除这些行:
String osName = System.getProperty("os.name").toLowerCase();
if (osName.contains("windows")) {
buildDir = "C:/tmp/${rootProject.name}/${project.name}"
}
推荐阅读
- python - 将字符串拆分为字母和标点符号,但正则表达式除外
- python - 如何使用 python subprocess.Popen 捕获 git 命令的输出
- numpy - vstack 以及填充空单元格
- sqlite - Flutter中的DatabaseException(不完整的输入(代码1 SQLITE_ERROR))
- arrays - 如何打印每个子数组的最后一个值(Numpy)
- shell - 如何创建与用户配置文件同名的文件夹不包括子文件夹或数据只需选择名称并使用 cmd 在另一个驱动器中创建文件夹
- python - 在 TKinter 中传递变量
- c - Do...While... 继续循环,如果发生其他情况。C
- php - WooCommerce:当产品已经在购物车中时更改添加到购物车的文本
- python - 将信息写入文本文件python的函数