异常处理 Error: java.util.concurrent.ExecutionException,Error: com.android.tools.aapt2.Aapt2Exception的解决

1.在将一个Eclipse的项目转移到AndroidStudio的过程中,碰到了的问题如下:

Error:Execution failed for task ':learnChinese:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:

从报错来看可以定位到时资源文件出问题了,一个在Android 上运行好好的项目怎么会在AndroidStudio里面出现这种问题,顿觉头大了,查阅各种资料后来才发现了原来是.9.png图片造成的,真是作孽啊~

“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png,也就是说项目资源文件夹中,只要图片的文件后缀是.9.png的,就说明这是点9图片,当我们用Eclipse等编译的时候,它遇到文件后缀是.9.png的文件,首先检查它实际上是不是点9图片,如果是,按点9图片处理;如果不是,按找默认图片处理。也就是说Eclipse自动帮我们完成了转化,容忍了我们的图片格式错误。

AndroidStudio使用的是android-maven-plugin插件,在aAndroidStudio下报错的原因,是因为声明为点9图片的文件,实际上不是真正的点9图片,解析图片出错。android-maven-plugin插件会严格检查图片格式,如果不匹配就报错。

解决方法:

    要么把图片制作成点9图片,要么去掉图片文件名中的.9;
    有一个朋友他出现这个问题的原因是公司的加密系统对图片进行了加密,导致AS解析图片出错,去除对这类图形文件的加密,问题也能得到解决;
    网上看到还有一种可能是:手动把图片等各式改过,比如图片原本是jpg格式然后强制改成png的也可能会出问题,改回原本的格式即可。

    去除掉PNG合法性检测,在build.gradle里的buildToolsVersion下面添加以下两句:

    android {
        ...
        aaptOptions.cruncherEnabled = false
        aaptOptions.useNewCruncher = false
        ...
        }

 参考    原文:https://blog.csdn.net/omrleft123/article/details/54381752

2. 问题:Error:java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.AaptException:

这个问题一般会在打包的时候遇到,查阅了网上很多资料都是说因为项目路径过长原因导致,但是其实很多时候并不是的,其主要原因是builde.gradle会在你打包的时候去检查你的res资源,一旦出现不规范就会出现该错误。

以上是问题所在,解决方案:

当然解决方案就是我们主动去禁止它检查,即在你Module的builde.gradle中添加以下代码:

    android{
       .....
       aaptOptions.cruncherEnabled = false
       aaptOptions.useNewCruncher = false
       .....
    }

 参考   原文:https://blog.csdn.net/lyh1299259684/article/details/80319136

3.Error: com.android.tools.aapt2.Aapt2Exception

Android Studio 导入项目出现以下问题:

  1. Error:Execution failed for task ':app:mergeDebugResources'.

  2. > Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

解决方案(一):

在项目的gradle.properties中添加以下代码:

android.enableAapt2=false

但是这种方法只能在当前项目管用;

解决方案(二):永久禁用,在电脑中找gradle.properties.ftl(后缀是ftl,不是properties)
   他在你android studio安装目录下如下图所示的位置
   
打开此文件,打开方式在记事本之修改非txt文档。
添加一句 :android.enableAapt2=false,再次创建project时,错误即会消失


参考   原文:https://blog.csdn.net/moqianmoqian/article/details/79598640
 

发布了96 篇原创文章 · 获赞 370 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/wk_beicai/article/details/90479086