Android - M preview developer issue

M preview 發佈後,在開發上仍有些小問題待解決。

本篇主要針對下面幾個改用 M preview 做為開發版本後,自己遇到的狀況做點整理

About ‘23.0.0 rc*’


從 IO 2015 Day1 發佈 Android M 後,至撰文的此時,SDK Tool 已更新了兩個版本,分別是 23 rc1 以及 rc2,在開發上對應到 buildToolsVersion即是 23.0.0 rc1 與 23.0.0 rc2 ;當如此設定時,可能會遇到上述的前兩個問題。

Found incompatible Build Tools and Android plugin version…

以目前來說,不論是將舊的專案的 build tools version 將之調整成23.0.0 rc*,或是用了 android studio 1.3 (ver. 141.1972460) 開了 M preview 的新專案,待 gradle 編譯完成後,都會看到類似下圖的提示文字。

android_m_preview_build_tools_version_error_issue

這個問題的處理,在於 project root 的 build.gradle 中,gradle plug-in 的版本跟 build tools version 無法對應起來。如果您跟我的環境是一樣的,那麼會看到這樣的設定:

project_build_gradle_in_android_studio_1_3

只要將他版本號改成對應的即可:

這個問題,於之前也先後在自己的 G+ pages 發佈了兩則簡單的說明:android studio 更新到 AI-141.1972460 以及其後 SDK 釋出 23 rc 2 時。此問題要留待未來 Android Studio 的更新,才有可能修正了。

-2015/06/10 更新
上述問題已於 Android Studio 1.3 Preview AI-141.1989493 更新後修正!
android_m_preview_build_tools_version_error_issue_pic2

就算是用預設的版本設定也沒問題了!

同時,Platform-tools 也有更新哦!

android_m_preview_build_tools_version_error_issue_pic3

再來,若是您不小心遇到接下來這個錯誤訊息。

Error:Execution failed for task ‘:app:compileDebugAidl’. > aidl is missing

如圖

android_m_preview_build_tools_version_error_issue2

這時,請留意一下,是否在對應的 gradle plug-in 版本設定錯誤,如 buildToolsVersion 設定為 '23.0.0 rc2'  設定成 '1.3.0-beta1'  之類的。

 

About ‘android-MNC’


接下來這個問題,是在自己要將調整成 M preview 的專案,執行到 非 M preview 的裝置上時,發生的問題:

INSTALL_FAILED_OLDER_SDK

會先看到如附圖的提示視窗,

android_m_preview_compile_version_build_on_old_version_issue等待後,便會在執行視窗中看到如下畫面,

android_m_preview_compile_version_build_on_old_version_issue_pic2這個問題,最容易的解法是直接將 Compile Sdk Version 改回 M preview 之前的版本,如下圖:

android_m_preview_compile_version_build_on_old_version_issue_pic3若是 build.gradle 的話,就是將 compileSdkVersion 'android-MNC'  改成 22  以前的版本即可。

不過,等等!這樣的改法不會覺得哪裡怪怪的嗎 XD

我們不就是為了要嘗鮮,而開始寫 M Preview 的 App 嗎?雖然說,這樣的狀況,可能可以解釋說,是 Google 想要先限縮讓 project 只能執行在已經是 M preview 的裝置,以便讓一些新的議題在舊裝置上,遇到問題的狀況可以被收斂。但這樣好像就有點麻煩了。所以,在 M 正式被發佈前,另外一個解法就是善用 gradle 的特性,運用 productFlavors 片段程式碼如下:

全部的程式碼請見 android_m_preview,設定完畢後,只要記得我們現在要執行的裝置是哪個版本,對 Build Variants 去設定即可,如下圖:

android_m_preview_compile_version_build_on_old_version_issue_pic4

這樣在 M 的正式版發佈前,先做彈性的調整了!

最後,如果發現已經跟著上述步驟做了,可是還是無法執行,那請記得一句口訣

沒事多 clean project ,多 clean project 沒事

如果還是有事的話怎麼辦?請留言…(踢飛)

Loading Facebook Comments ...

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *