最近由於有需求去做導航方面的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
出現這種錯誤原因是因為 buildToolsVersion、compileSdkVersion、targetSdkVersion、 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