如何在 Android Studio Canary 5、6 和 7 上解决 Instant 运行

How to solve Instant Run on Android Studio Canary 5, 6 and 7

自从我升级到 Android Studio Canary 5 后,我在使用 Instant 运行 时遇到了问题,当启用 Instant 运行 时出现以下错误:

Information:Gradle tasks [:app:assembleDebug]
Error:C:\..etc.\app\build\intermediates\instant-run-support\debug\dependencies\AndroidManifest.xml:2 resource string/app_build_version_name (aka com.itbackyard.iels.client:string/app_build_version_name) not found
Error:java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.AaptException: AAPT2 link failed:
Error:com.android.builder.internal.aapt.AaptException: AAPT2 link failed:
Error:java.lang.RuntimeException: com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: Failed to execute aapt
Error:com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: Failed to execute aapt
Error:com.android.ide.common.process.ProcessException: Failed to execute aapt
Error:java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.AaptException: AAPT2 link failed:
Error:com.android.builder.internal.aapt.AaptException: AAPT2 link failed:
Information:BUILD FAILED in 1m 29s
Information:8 errors
Information:0 warnings
Information:See complete output in console

我唯一的解决办法是从设置中禁用 Instant 运行。我能找到的是这个 topic 到目前为止还没有解决方案。

知道这是否仍然是一个错误,或者在修复之前是否有任何解决方法?

这是我的版本信息:

Android Studio 3.0 Canary 5
Build #AI-171.4141229, built on June 28, 2017
JRE: 1.8.0_152-release-884-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

编辑 我现在已经更新到

Android Studio 3.0 Canary 6
Build #AI-171.4163606, built on July 7, 2017
JRE: 1.8.0_152-release-884-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

并更新到 Canary 7

Android Studio 3.0 Canary 7
Build #AI-171.4182969, built on July 14, 2017
JRE: 1.8.0_152-release-884-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0

还是一样的问题。

添加这一行 gradle.properties 文件。对我有用

android.enableAapt2=false

Android Studio 3.0 Canary 5

如果您的构建由于资源处理问题而失败。要暂时禁用 AAPT,请在 gradle.properties 文件中设置 android.enableAapt2=false。

我是这样解决的:

我所做的是在 Android Studio 3.0 Canary 7 中创建一个空的新项目,它没有这种行为。我将新的空项目默认 build.gradle (Module: app) 与存在上述问题的现有项目进行了比较。

当然这可能因情况而异,但在我的例子中,我使用了一个变量来更新 versionName 并且它以前工作没有任何问题,但在 Andriod Studio 3 上没有。因此我更正了行,SyncRebuild 问题消失了。