zoukankan      html  css  js  c++  java
  • 高德地图Demo运行报错 com.android.ide.common.process.ProcessException: Failed to execute aapt

    最近由于有需求去做导航方面的Android开发,很是无奈,以前也的确是没有搞过,领导开大会当着所有人的面说这是给我分配的第一个工作,无论如何要做好,突然间感觉压力好大,自己已经多年没有敲过代码,而且Android方面的开发我也的确是没有做过,Java语言的基本特性我也是忘记的差不多了,总是感觉有几分赶鸭子上架,不过这也是十分无奈的事情,于是我下载了一个高德地图的Demo,为什么没有用百度的呢,其实百度的那个API介绍总感觉比较复杂了些,于是便选择使用高德的地图。

    高德地图的Demo  Android版链接如下:

    http://amappc.cn-hangzhou.oss-pub.aliyun-inc.com/lbs/static/zip/AMap_Android_Demo.zip

    情景:打开已有项目后报错

    com.android.ide.common.process.ProcessException:Failed to execute aapt

    原因:在build.gradle文件中,

    compileSdkVersion 和buildToolsVersion 不匹配






    解决:

    匹配 compileSdkVersion 和buildToolsVersion 

    第一步:

    通过SDK Manager工具安装最新的sdk版本,和buildToos的版本

    第二步:  修改编译文件   build.gradle

    可以看到错误

    Error:Execution failed for task ':app:processDebugResources'.
    > com.android.ide.common.process.ProcessException: Failed to execute aapt

    仍然没有解决。

        compileSdkVersion 26
        buildToolsVersion '23.0.1'

    配置编译的文件中出问题的地方就是上面的两个版本号的问题。

    在第一步中我们可以看到我们其实已经把SDK的版本基本都安装上了,如下图:

    但是build tool的版本并不好解决,因为并没有提供安装低版本的选项。

    以上是我个人的分析,并不知道是否正确。

    下面给出一个自认为说的还算不错的一个资料:

    https://blog.csdn.net/qq_22078107/article/details/53212883?locationNum=4&fps=1

    出现这种错误原因是因为  buildToolsVersioncompileSdkVersiontargetSdkVersion、      compile 'com.android.support:appcompat-v7:xxx'不一致。

    此时需要自己动手修改项目的build.gradle文件,

    把下面数据修改一致即可,(小数点后的值可以不相同)

    compileSdkVersion 23
    buildToolsVersion "23.0.1"
    targetSdkVersion 23
    compile 'com.android.support:appcompat-v7:23.2.0'

    (同理,如果是19,20什么的都改成一致就行)

    若还报错,clean一下工程即可;

    根据上面资料的方法我这里将   buildToolsVersion "23.0.1"   改为   buildToolsVersion "26.0.1"

    具体如下图:

    然后,编译,发现成功了,虽然有些警告。这里面的道理是怎么样的还是没有具体的搞清楚,不过将SDK和build tool 的主版本号改为一致确实可行,不过这里面还有一点是需要注意的,

    那就是需要将 build tool 的主版本号改为 SDK的主版本号才可以编译成功,反之不行。准确的来说是还有错误报出来,不过还是可以运行编译成功的。

    如果将  SDK 版本号改为  build tool  的版本号  则编译不成功,具体如下图:

    ==========================================================================

    经过一些实验后有了一些小发现,于是在下面附上一些自己后来的发现:

    build tool 的版本对编译成功与否影响没有想象到那么大的作用,不过尽量把 build tool的版本号调到比较高的版本还是没有问题的。

    build tool的版本号必须是本机里面安装的,这个和上面所说的主版本号与否无关,重点是你的电脑,也就是你的编译环境中必须要具有这个版本的build tool

    在 SDK 版本不变的情况下,调整build tool的版本号, 尽可能的调整build tool 版本为最新,有时候低版本的SDK 往往需要高一些版本的build tool才能编译,不过不管怎么说最新的build tool 应该是没有什么大问题的。

    感觉不错的资料,推荐如下:

    https://blog.csdn.net//never_cxb/article/details/50520108

    https://blog.csdn.net/shakdy/article/details/54861919

    http://ask.csdn.net/questions/173573

  • 相关阅读:
    vue.js 条件与循环
    vue.js 声明式渲染
    数据库设计范式?
    用户购物车,实现添加商品的功能!
    用户购物车功能的实现。
    初始ajax技术
    SQL语句中 INNER JOIN的用法!
    商城 用户登录、注册、注销,购物车。
    EL和 JSTL? 在JSP中简化 java代码的写法!
    小数点后保留2位小数的正则表达式
  • 原文地址:https://www.cnblogs.com/devilmaycry812839668/p/8644363.html
Copyright © 2011-2022 走看看