昨天表現還好好地項目,今天一早運行報錯:
[ +51 ms] Checking the license for package Android SDK Build-Tools 28.0.3 in /Users/ing/Library/Android/sdk/licenses
[ ] Warning: License for package Android SDK Build-Tools 28.0.3 not accepted.
[ ] Checking the license for package Android SDK Platform 29 in /Users/ing/Library/Android/sdk/licenses
[ ] Warning: License for package Android SDK Platform 29 not accepted.
[ +1 ms] FAILURE: Build failed with an exception.
[ +1 ms] * What went wrong:
[ ] Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
[ ] > Failed to install the following Android SDK packages as some licences have not been accepted.
[ ] build-tools;28.0.3 Android SDK Build-Tools 28.0.3
[ ] platforms;android-29 Android SDK Platform 29
[ ] To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
錯誤大致意思應該是缺少某種許可。
題外話:
其實有個明顯奇怪的地方,我本地AS的android sdk
是我自己指定的路徑:
并非錯誤中提示的 /Users/ing/Library/sdk
. 為啥這里是這個路徑呢,很顯然在項目中的local.properties
文件中指定成了sdk.dir=/Users/ing/sdk
也就是所謂的project
的 sdk
和你的androidstudio
的sdk
的區別。所以我猜想直接修改文件中的路徑為你設置的路徑,重啟as應該就能解決。
我暫時沒去驗證,想著就根據錯誤提示的信息看看能否解決,人家要求很明確,那我滿足即可,終端依次輸入:
cd /Users/你的用戶名/Library/Android/sdk
cd tools/bin
./sdkmanager --licenses
然后根據提示一路 y 即可,操作完成后還有報錯【sorry,忘了截圖了】,直接清緩存重啟AS. 操作: File -- Invalidate caches/Restart
有意思的事情出現了
重啟后會彈窗提示選擇sdk路徑,ok,基本證實了我之前的猜測。
將錯就錯,就任性的選擇Use project's sdk
,然后build之后 重新運行不再報錯,問題解決。
所以 這里碰到這個問題,首先確定下錯誤提示里的路徑是否和你設置的android studio
的sdk 的路徑是一致的么,如果不是 那就直接修改local.properties
里路徑,改為android studio
的路徑,重啟android studio
即可。
!!! -- Import tips -- !!!
如果你和我一樣,將錯就錯,改成了Android Studio的sdk路徑并以后也用這個了,記得將bash_profile里的sdk路徑也一并改掉,要不就和我似的,為了省磁盤空間把自定義路徑下的sdk刪除了的話,會導致無法連接真機。。。
以上是mac osx 系統下的解決辦法,至于windows系統下這類報錯,如果是舊版本的sdk,大致類似。首先根據提示找到對應的sdk路徑的tools/bin下執行命令行工具里執行
sdkmanager.bat --licenses
但有的新版本下是沒有該文件。那么有個簡單的辦法:直接打開sdk manager
記得勾選show packages detial
選項,然后勾選錯誤提示中的對應版本的sdk tools
即可 【圖是mac版的as截圖,windows未實操,僅供參考】