高德地圖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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM