问题
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 中,包含assemble
和check
这两个 task。
而点击绿色按钮Run
时,就是运行的build
task。
再根据我遇到的现象,Run
失败,即build
失败,assemble
成功。所以问题出在check
上。
故单独运行check
,便可清楚看到问题所在。
ps: abortOnError
是在打包时即使有报错,也不会停止打包。