安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour

码字辛苦!转载请注明出处!

最近接到一个外快,需求很简单,于是就爽快答应了。

拿到手上才发现,这是个大龄程序猿用eclipse写的旧项目,导入AS编译后,爆出了这样的错误:

安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour_第1张图片

这里强调一下:

网上流传的禁用AAPT2的方法是解决不了这个问题的!

android.enableAapt2=false

↑这是错误的解决方法

 

=====================罪魁祸首=====================

导致这个问题的原因,是因为

1、AS对于.9图的裁切要求更加精确

安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour_第2张图片

而eclipse使用的.9图只要有粗略的位置就可以了。

2、Gradle3.0+为了安全性,将compile替换成了implementation

 

=====================解决问题=====================

 

使用全局文件搜索(双击SHIFT)【.9】:

安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour_第3张图片

打开所有.9图,重新抠一下边界

安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour_第4张图片

接下来打开app的build.gradle,将dependencies中所有的compile替换成implementation:

一定要选择dependencies里的内容,否则,全局替换会把你的compileSdkVersion给弄成implementationSdkVersion,导致编译出错。

安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour_第5张图片

最后重新【Make project】一下:OK,编译通过~

安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour_第6张图片

 

 

*这里说一下implementation和compile的区别:

implementation引用的依赖库仅对当前moudule有效,如果其他moudule需要这些依赖库,也需要implementation;

compile引用的依赖库对项目中所有的moudule生效,因此可能造成安全问题。

安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour_第7张图片

最后,如果觉得有帮助的话,就给博主发个红包吧~

安卓导入旧项目org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResour_第8张图片

 

你可能感兴趣的:(安卓开发)