老是報錯不知道什麼原因 查了一下終於知道了 原來是打錯了 不過還是記錄一下
版權聲明:本文爲博主原創文章,轉載請註明本文源鏈接 https://blog.csdn.net/RobotHost/article/details/78134653
注:第1、2種情況較常見
第1種可能的情況
原因:
Android Studio中目前的Kotlin插件版本 和 kotlin-gradle-plugin版本不一致。當版本不一致時,檢查build.gradle中配置時會有提示,如下圖:
可以看到,當前Gradle配置是1.1.3-2,而ide的插件版本已經升級到了1.1.51。
解決方法:
- 根據ide Kotlin插件版本,將build.gradle中kotlin-gradle-plugin版本修改爲最新的版本號即可。
- 如重編譯後未生效未解決,則因爲1.1.51版本的gradle插件未下載,可重新啓動項目即會自動下載,待下載完成後,gradle自動編譯完成即不會再報此類錯誤。
第2種可能的情況
原因:
ide 某種bug
解決方法:
- File –> Invalifate caches/Restart –> Invalifate and Restart;
- 更新Android studio;更新Kotlin Plugin;如果用到了Anko,同時更新Anko Plugin。重啓;
- build.gradle中Anko包版本修改爲最新,例如:anko_version = ‘0.10.1’。有些時候build.gradle中不會提示當前Anko是否未最新,這時可以先去更新最新的ide的Anko plugin ,ide的Anko plugin 版本號一般會和Anko包版本號相同,這時可以根據ide的Anko plugin版本號直接填寫build.gradle中Anko包版本號,rebuild自動下載和編譯即可。
這種情況是我遇到的,最終檢查後,發現是因爲Anko不是最新版本導致的android.R資源在Anko寫法時無法引用,但是在kt代碼中並不會報錯,故不易找到原因。
第3種可能的情況
原因:
有些時候,因爲之前同一項目的Android Strudio關閉時,未正常關閉(如正在編譯時關閉),導致該項目仍被java編譯器佔用;當重新打開該項目是,此時再編譯會重啓一個編譯進程,未正常關閉的進程和新的進程相沖突,可能導致無法編譯相關資源的引用關係。
解決方法:
- 結束pc中所有android studio相關的、java相關的進程,然後重新打開Android Strudio打開這個項目,rebuild即可。