技术干货Android开发Android开发经验谈

Android Studio中 "Run"失败,但是 "./gr

2017-10-12  本文已影响0人  GloryObject

问题

Android Studio 中,点击绿色三角按钮 Run 失败,还有一堆看不出什么的 log:

Error:Execution failed for task ':mobile:transformClassesWithDexForAlphaDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: 
com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: 
com.android.ide.common.process.ProcessException: Return code 1 for dex process

但是使用命令 ./gradlew assembleDebug能成功打包出 apk。

解决方案

使用命令 ./gradlew check,等待一会,看到如下 log:

* What went wrong:
Execution failed for task ':zmtest:lint'.
> Lint found errors in the project; aborting build.
  
  Fix the issues identified by lint, or add the following to your build script to proceed with errors:
  ...
  android {
      lintOptions {
          abortOnError false
      }
  }
  ...

这就好办了,修改zmtest这个 module 的build.gradle文件,添加以上 log 中提示的几行

android {
      lintOptions {
          abortOnError false
      }
  }

然后再点击Run按钮运行一下,成功打包并安装~~(撒花 🌺🌺🌺

原因

之所以能想到这个解决方案,是因为想起了前几天看的 Gradle 的一些内容,看过 Gradle 的应该会知道。

Gradle 中有几个主要的 task
- assemble
- check
- build
- clean
其中的build task 中,包含 assemblecheck这两个 task。
而点击绿色按钮Run时,就是运行的build task。

再根据我遇到的现象,Run失败,即build失败,assemble成功。所以问题出在check上。
故单独运行check,便可清楚看到问题所在。

ps: abortOnError是在打包时即使有报错,也不会停止打包。

上一篇 下一篇

猜你喜欢

热点阅读